PROTOCOL_CL_CLOSE_AF_COMPLETE función de devolución de llamada (ndis.h)
Los clientes NDIS orientados a la conexión usan la función ProtocolClCloseAfComplete . Todos los clientes NDIS orientados a la conexión deben tener funciones ProtocolClCloseAfComplete para completar las operaciones asincrónicas que inician con NdisClCloseAddressFamily.
Sintaxis
PROTOCOL_CL_CLOSE_AF_COMPLETE ProtocolClCloseAfComplete;
void ProtocolClCloseAfComplete(
[in] NDIS_STATUS Status,
[in] NDIS_HANDLE ProtocolAfContext
)
{...}
Parámetros
[in] Status
Especifica el estado final de la solicitud iniciada por el cliente para cerrar la familia de direcciones, que puede ser una de las siguientes:
NDIS_STATUS_SUCCESS
Se cerró la familia de direcciones. El NdisAfHandle que representa la familia de direcciones abiertas, que el cliente almacena en su área ProtocolAfContext , ahora no es válida.
NDIS_STATUS_FAILURE
El AF tiene asociados credenciales verificables o SAP registrados que el cliente debe liberar antes de intentar cerrar el AF, o el cliente llamado NdisClCloseAddressFamily dos veces porque NDIS descubrió que el estado af se marcó como "cierre".
[in] ProtocolAfContext
Especifica el identificador proporcionado por el cliente en su área de contexto por AF. El cliente configuró originalmente este área de contexto y pasó este identificador a NDIS con NdisClOpenAddressFamilyEx.
Valor devuelto
None
Observaciones
Después de asegurarse de que no tiene equipos virtuales pendientes o SAPs registrados en su familia de direcciones abiertas, un cliente llama a NdisClCloseAddressFamily para eliminar la asociación entre sí, un administrador de llamadas y una NIC subyacente determinada. NDIS llama a la función ProtocolCmCloseAf para el administrador de llamadas que este cliente usó originalmente para abrir la familia de direcciones como una operación asincrónica. Después de llamar a NdisClCloseAddressFamily, el cliente debe considerar que NdisAfHandle no es válido.
Por lo tanto, el cliente debe tener una función ProtocolClCloseAfComplete , que llama a NDIS cuando se realiza la operación asincrónica close-AF. Si el estado de entrada es NDIS_STATUS_SUCCESS, el cliente puede liberar su área de contexto por AF.
Ejemplos
Para definir una función ProtocolClCloseAfComplete , 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 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 ProtocolClCloseAfComplete denominada "MyClCloseAfComplete", use el tipo de PROTOCOL_CL_CLOSE_AF_COMPLETE como se muestra en este ejemplo de código:
PROTOCOL_CL_CLOSE_AF_COMPLETE MyClCloseAfComplete;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
VOID
MyClCloseAfComplete(
NDIS_STATUS Status,
NDIS_HANDLE ProtocolAfContext
)
{...}
El tipo de función PROTOCOL_CL_CLOSE_AF_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_CL_CLOSE_AF_COMPLETE del archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, consulte 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, consulte Anotación del comportamiento de la función.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Compatible con los controladores NDIS 6.0 y NDIS 5.1 (consulte ProtocolClCloseAfComplete (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte ProtocolClCloseAfComplete (NDIS 5.1)) en Windows XP. |
Plataforma de destino | Windows |
Encabezado | ndis.h (incluya Ndis.h) |
IRQL | <= DISPATCH_LEVEL |