Compartir a través de


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.

Nota Debe declarar la función mediante el tipo PROTOCOL_CL_CLOSE_AF_COMPLETE . Para obtener más información, consulte la sección Ejemplos siguientes.
 

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

Consulte también

NdisClCloseAddressFamily

NdisClOpenAddressFamilyEx

NdisFreeMemory

NdisFreeToNPagedLookasideList

ProtocolCmCloseAf

ProtocolCmOpenAf

ProtocolUnbindAdapterEx