Compartir a través de


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

NDIS llama a la función ProtocolOpenAdapterCompleteEx del controlador de protocolo para completar una operación de adaptador abierta para la que la función NdisOpenAdapterEx devolvió NDIS_STATUS_PENDING.

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

Sintaxis

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX ProtocolOpenAdapterCompleteEx;

void ProtocolOpenAdapterCompleteEx(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] NDIS_STATUS Status
)
{...}

Parámetros

[in] ProtocolBindingContext

Identificador de un área de contexto asignada por el controlador de protocolo. El controlador de protocolo mantiene la información de contexto por enlace en esta área de contexto. El controlador proporcionó este identificador a NDIS cuando el controlador llamó a NdisOpenAdapterEx.

[in] Status

El estado final de la operación abierta para el controlador de minipuerto subyacente. Este valor de estado se NDIS_STATUS_SUCCESS si se estableció el enlace o si se ha establecido algún estado de error que determine el controlador subyacente.

Valor devuelto

None

Observaciones

Se requiere la función ProtocolOpenAdapterCompleteEx . Un controlador de protocolo llama a la función NdisOpenAdapterEx desde su función ProtocolBindAdapterEx . NDIS llama a la función ProtocolOpenAdapterCompleteEx del controlador una vez completada una operación de apertura pendiente.

Si ProtocolBindAdapterEx está esperando que NDIS llame a ProtocolOpenAdapterCompleteEx, esta función puede simplemente guardar el estado e indicar que se ha llamado (por ejemplo, puede actualizar el área de contexto ProtocolBindingContext ). Esto permite que la función ProtocolBindAdapterEx complete la operación de enlace.

Si la función ProtocolBindAdapterEx aún no lo ha hecho, ProtocolOpenAdapterCompleteEx puede asignar los recursos que requiere el controlador para el enlace.

Si ProtocolBindAdapterEx devolvió NDIS_STATUS_PENDING, ProtocolOpenAdapterCompleteEx puede llamar a Función NdisCompleteBindAdapterEx para completar la operación de enlace. En este caso, ProtocolOpenAdapterCompleteEx pasa NdisCompleteBindAdapterEx el identificador BindContext que NDIS pasó a ProtocolBindAdapterEx. Si el parámetro Status indica un error, ProtocolOpenAdapterCompleteEx puede liberar los recursos de enlace configurados en ProtocolBindAdapterEx.

NDIS llama a ProtocolOpenAdapterCompleteEx en IRQL = PASSIVE_LEVEL.

Ejemplos

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

PROTOCOL_OPEN_ADAPTER_COMPLETE_EX MyOpenAdapterCompleteEx;

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

_Use_decl_annotations_
VOID
 MyOpenAdapterCompleteEx(
    NDIS_HANDLE  ProtocolBindingContext,
    NDIS_STATUS  Status
    )
  {...}

El tipo de función PROTOCOL_OPEN_ADAPTER_COMPLETE_EX 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_OPEN_ADAPTER_COMPLETE_EX 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 Se admite en NDIS 6.0 y versiones posteriores.
Plataforma de destino Windows
Encabezado ndis.h (incluya Ndis.h)
IRQL PASSIVE_LEVEL

Consulte también

NdisCompleteBindAdapterEx

NdisOpenAdapterEx

ProtocolBindAdapterEx