PROTOCOL_CM_DEACTIVATE_VC_COMPLETE función de devolución de llamada (ndis.h)
La función ProtocolCmDeactivateVcComplete es una función necesaria. ProtocolCmDeactivateVcComplete completa el procesamiento de una solicitud iniciada por el administrador de llamadas que el controlador de miniport subyacente (y NDIS) desactiva una vc para la que NdisCmDeactivateVc devolvió previamente NDIS_STATUS_PENDING.
Sintaxis
PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;
void ProtocolCmDeactivateVcComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE CallMgrVcContext
)
{...}
Parámetros
[in] Status
Especifica el estado final de la desactivación.
[in] CallMgrVcContext
Especifica el identificador de un área de contexto asignada por el administrador de llamadas en la que el administrador de llamadas mantiene su estado por VC. El administrador de llamadas proporcionó este identificador a NDIS desde su función ProtocolCoCreateVc.
Valor devuelto
Ninguno
Observaciones
NDIS normalmente llama a ProtocolCmDeactivateVcComplete en el contexto del cierre de la llamada del administrador de llamadas en nombre de un cliente orientado a la conexión. Normalmente, el administrador de llamadas llama a NdisCmDeactivateVc desde su función ProtocolCmCloseCall. Siempre que NdisCmDeactivateVc devuelve NDIS_STATUS_PENDING, NDIS llama posteriormente a su función ProtocolCmDeactivateVcComplete.
Es decir, cuando el controlador de miniporte orientado a la conexión subyacente ha desactivado el VC, NDIS llama a ProtocolCmDeactivateVcComplete. El estado final de la desactivación se encuentra en Estado . Los valores posibles para el estado final incluyen, pero no se limitan a:
ProtocolCmDeactivateVcComplete realiza cualquier postprocesamiento necesario para completar la desactivación de una conexión virtual, como establecer marcas en su área de estado para indicar que la conexión está inactiva o liberando recursos asignados dinámicamente mientras la credencial verificable está activa.
La finalización de la desactivación significa que todos los parámetros de llamada para el VC usado en la activación ya no son válidos. Cualquier uso adicional de la vc está prohibido excepto para reactivarlo con un nuevo conjunto de parámetros de llamada.
Los administradores de llamadas deben liberar los recursos asignados para la activación de VC y el control de retorno lo antes posible. Si el administrador de llamadas devolvió previamente NDIS_STATUS_PENDING de su función ProtocolCmCloseCall y todas las operaciones para cerrar la llamada se han completado, ProtocolCmDeactivateVcComplete ahora debería llamar a NdisCmCloseCallComplete.
Ejemplos de
Para definir una función ProtocolCmDeactivateVcComplete, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir un ProtocolCmDeactivateVcComplete función denominada "MyCmDeactivateVcComplete", use el tipo PROTOCOL_CM_DEACTIVATE_VC_COMPLETE tal como se muestra en este ejemplo de código:
PROTOCOL_CM_DEACTIVATE_VC_COMPLETE MyCmDeactivateVcComplete;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MyCmDeactivateVcComplete(
NDIS_STATUS Status,
NDIS_HANDLE CallMgrVcContext
)
{...}
El tipo de función PROTOCOL_CM_DEACTIVATE_VC_COMPLETE 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 PROTOCOL_CM_DEACTIVATE_VC_COMPLETE en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Compatible con controladores NDIS 6.0 y NDIS 5.1 (consulte ProtocolCmDeactivateVcComplete (NDIS 5.1)) en Windows Vista. Compatible con controladores NDIS 5.1 (consulte ProtocolCmDeactivateVcComplete (NDIS 5.1)) en Windows XP. |
de la plataforma de destino de | Windows |
encabezado de | ndis.h (incluya Ndis.h) |
irQL | <= DISPATCH_LEVEL |