Compartir a través de


PROTOCOL_CL_DEREGISTER_SAP_COMPLETE función de devolución de llamada (ndis.h)

Los clientes de NDIS orientados a la conexión usan la función ProtocolClDeregisterSapComplete . Los clientes NDIS orientados a la conexión que aceptan llamadas entrantes deben tener funciones ProtocolClDeregisterSapComplete para completar las operaciones asincrónicas que inician con NdisClDeregisterSap. De lo contrario, la función ProtocolClDeregisterSapComplete registrada de un controlador de protocolo puede simplemente devolver el control.

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

Sintaxis

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE ProtocolClDeregisterSapComplete;

void ProtocolClDeregisterSapComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolSapContext
)
{...}

Parámetros

[in] Status

Especifica el estado final de la solicitud del cliente para anular el registro de SU SAP, que puede ser uno de los siguientes:

NDIS_STATUS_SUCCESS

Se cerró SAP. El NdisSapHandle que representa el SAP registrado anteriormente del cliente, que el cliente almacenado en su área ProtocolSapContext , ahora no es válido.

NDIS_STATUS_FAILURE

NDIS había marcado el estado del AF como "cierre", por lo que el SAP asociado representado por NdisSapHandle ya se publicó cuando la llamada del cliente a Se produjo NdisClDeregisterSap .

NDIS_STATUS_XXX

El administrador de llamadas no pudo cerrar la solicitud de SAP por algún motivo determinado por CM y NDIS propagó el estado devuelto por su Función ProtocolCmDeregisterSap para el cliente.

[in] ProtocolSapContext

Especifica el identificador proporcionado por el cliente a su área de contexto por SAP, que se pasó originalmente a NDIS con NdisClRegisterSap. Una vez que el administrador de llamadas haya anulado correctamente el registro de este SAP, el cliente puede liberar su área de contexto o preparar esta área de contexto para su reutilización.

Valor devuelto

None

Observaciones

Una llamada a ProtocolClDeregisterSapComplete indica que el administrador de llamadas ha procesado la llamada anterior del cliente a NdisClDeregisterSap .

A menos que el administrador de llamadas no haya podido anular el registro por algún motivo determinado por CM, el cliente debe considerar que NdisSapHandle no es válido cuando se llama a ProtocolClDeregisterSapComplete . Por lo tanto, ProtocolClDeregisterSapComplete puede liberar el área de contexto por SAP que el cliente asignó o preparar para su reutilización en una llamada posterior a NdisClRegisterSap.

Ejemplos

Para definir una función ProtocolClDeregisterSapComplete , 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 ProtocolClDeregisterSapComplete denominada "MyClDeregisterSapComplete", use el tipo PROTOCOL_CL_DEREGISTER_SAP_COMPLETE como se muestra en este ejemplo de código:

PROTOCOL_CL_DEREGISTER_SAP_COMPLETE MyClDeregisterSapComplete;

A continuación, implemente la función de la siguiente manera:

_Use_decl_annotations_
VOID
 MyClDeregisterSapComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolSapContext
    )
  {...}

El tipo de función PROTOCOL_CL_DEREGISTER_SAP_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_DEREGISTER_SAP_COMPLETE en el 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 ProtocolClDeregisterSapComplete (NDIS 5.1)) en Windows Vista. Compatible con los controladores NDIS 5.1 (consulte ProtocolClDeregisterSapComplete (NDIS 5.1)) en Windows XP.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL <= DISPATCH_LEVEL

Consulte también

NdisClDeregisterSap

NdisClRegisterSap

NdisCmDeregisterSapComplete

NdisFreeMemory

NdisFreeToNPagedLookasideList

NdisMCmDeregisterSapComplete

ProtocolCmDeregisterSap