MINIPORT_CO_ACTIVATE_VC función de devolución de llamada (ndis.h)
La función MiniportCoActivateVc es necesaria para miniportes orientados a la conexión. NDIS llama a MiniportCoActivateVc para indicar al controlador de miniporte que se está activando una conexión virtual.
Sintaxis
MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;
NDIS_STATUS MiniportCoActivateVc(
[in] NDIS_HANDLE MiniportVcContext,
[in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}
Parámetros
[in] MiniportVcContext
Especifica el identificador de un área de contexto asignada por el controlador de miniporte en la que el controlador de miniporte mantiene su estado por VC. El controlador de minipuerto proporcionó este identificador a NDIS desde su función MiniportCoCreateVc .
[in, out] CallParameters
Especifica los parámetros de llamada, como especifica el administrador de llamadas, que se va a establecer para esta credencial verificable. En la salida, el controlador de minipuerto devuelve parámetros de llamada modificados si se establecen determinadas marcas en la estructura CO_CALL_PARAMETERS .
Valor devuelto
Código devuelto | Descripción |
---|---|
|
Indica que la credencial verificable se activó correctamente. |
|
Indica que el controlador de minipuerto completará la solicitud para activar una credencial verificable de forma asincrónica. Cuando el controlador de miniporte haya terminado con sus operaciones, debe llamar a . NdisMCoActivateVcComplete. |
|
Indica que los parámetros de llamada especificados en CallParameters no son válidos o no son válidos para el tipo de medio que admite este controlador de minipuerto. |
|
Indica que el controlador de minipuerto no pudo activar el VC porque no pudo asignar todos los recursos necesarios que el controlador de miniporte necesita para mantener la información de estado sobre el VC activo. |
Comentarios
El controlador de minipuerto debe validar los parámetros de llamada para este VC, como se especifica en CallParameters, para comprobar que el adaptador puede admitir la llamada solicitada. Si no se pueden satisfacer los parámetros de llamada solicitados, el controlador de minipuerto debe producir un error en la solicitud con NDIS_STATUS_INVALID_DATA.
Se puede llamar a MiniportCoActivateVc muchas veces para un único VC con el fin de cambiar los parámetros de llamada de una llamada ya activa. En cada llamada, el controlador de minipuerto debe validar los parámetros y realizar cualquier procesamiento según sea necesario por su adaptador para satisfacer la solicitud. Sin embargo, si no puede establecer los parámetros de llamada especificados, MiniportCoActivateVc debe dejar el VC en un estado utilizable, ya que el cliente orientado a la conexión o un administrador de llamadas pueden seguir enviando o recibiendo datos mediante los parámetros de llamada anteriores.
Si las marcas de ROUND_UP_FLOW o ROUND_DOWN_FLOW se establecen en la estructura de parámetros de llamada en CallParameters-MediaParameters-Flags>>, se ha solicitado al controlador de miniportar que devuelva la velocidad de flujo real del VC después de redondear la velocidad de flujo según la marca adecuada que se haya establecido. Si el controlador de minipuerto cambia cualquiera de los parámetros de llamada porque se han establecido estas marcas, debe devolver los parámetros de llamada reales en uso para vc en CallParameters.
Si los parámetros de llamada son aceptables, MiniportCoActivateVc se comunica con su adaptador según sea necesario para preparar el adaptador para recibir o transmitir datos a través de la conexión virtual (es decir, programar búferes de recepción).
Ejemplos
Para definir una función MiniportCoActivateVc , primero debe proporcionar una declaración de función que identifique el tipo de función que está definiendo. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a Code Analysis for Drivers, Static Driver Verifier (SDV) y otras herramientas de comprobación a encontrar errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir una función MiniportCoActivateVc denominada "MyCoActivateVc", use el tipo MINIPORT_CO_ACTIVATE_VC como se muestra en este ejemplo de código:
MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
NDIS_STATUS
MyCoActivateVc(
NDIS_HANDLE MiniportVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
El tipo de función MINIPORT_CO_ACTIVATE_VC se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función MINIPORT_CO_ACTIVATE_VC en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declarar funciones mediante tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, consulte Anotación del comportamiento de la función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte MiniportCoActivateVc (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulta MiniportCoActivateVc (NDIS 5.1)) en Windows XP. |
Plataforma de destino | Windows |
Encabezado | ndis.h (incluya Ndis.h) |
IRQL | <= DISPATCH_LEVEL |