Función NdisOpenAdapterEx (ndis.h)

Un controlador de protocolo llama a la función NdisOpenAdapterEx desde su función ProtocolBindAdapterEx para configurar un enlace entre el controlador de protocolo y un controlador subyacente.

Sintaxis

NDIS_STATUS NdisOpenAdapterEx(
  [in]  NDIS_HANDLE           NdisProtocolHandle,
  [in]  NDIS_HANDLE           ProtocolBindingContext,
  [in]  PNDIS_OPEN_PARAMETERS OpenParameters,
  [in]  NDIS_HANDLE           BindContext,
  [out] PNDIS_HANDLE          NdisBindingHandle
);

Parámetros

[in] NdisProtocolHandle

Identificador devuelto por Función NdisRegisterProtocolDriver .

[in] ProtocolBindingContext

Identificador de un área de contexto proporcionada por el autor de la llamada en la que el controlador de protocolo mantiene información de estado para este enlace.

[in] OpenParameters

Puntero a una estructura de NDIS_OPEN_PARAMETERS configurada por el autor de la llamada.

[in] BindContext

Identificador que identifica el área de contexto de NDIS para la operación de enlace. NDIS pasó este identificador al parámetro BindContext de la función ProtocolBindAdapterEx .

[out] NdisBindingHandle

Puntero a una variable proporcionada por el autor de la llamada. NDIS escribe un identificador en NdisBindingHandle que identifica el enlace entre el autor de la llamada y el adaptador de miniporte especificado en el miembro AdapterName en OpenParameters . El autor de la llamada usa este identificador en llamadas posteriores a las funciones NdisXxx .

Valor devuelto

NdisOpenAdapterEx devuelve uno de los siguientes valores de estado:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
NdisOpenAdapterEx completó correctamente la operación de apertura.
NDIS_STATUS_PENDING
NdisOpenAdapterEx no completó la operación de apertura. NDIS más adelante llama al controlador de protocolo Función ProtocolOpenAdapterCompleteEx para completar la operación de apertura.
NDIS_STATUS_RESOURCES
Error de NdisOpenAdapterEx debido a recursos insuficientes.
NDIS_STATUS_ADAPTER_NOT_FOUND
Error en NdisOpenAdapterEx porque no se encontró un adaptador de minipuerto especificado en el miembro AdapterName en OpenParameters .
NDIS_STATUS_UNSUPPORTED_MEDIA
Error en NdisOpenAdapterEx porque la matriz especificada en el miembro MediumArray de OpenParameters no incluía un tipo medio que admite NDIS o el controlador subyacente.
NDIS_STATUS_FAILURE
Error de NdisOpenAdapterEx por motivos distintos de los de la lista anterior.

Comentarios

Un controlador de protocolo debe llamar a NdisOpenAdapterEx desde su función ProtocolBindAdapterEx . NDIS produce un error al intentar llamar a NdisOpenAdapterEx fuera del contexto de ProtocolBindAdapterEx.

Si NdisOpenAdapterEx devuelve NDIS_STATUS_PENDING, el autor de la llamada no debe usar los valores en NdisBindingHandle y el miembro SelectedMediumIndex en OpenParameters hasta que NDIS llame al Función ProtocolOpenAdapterCompleteEx .

La cadena en AdapterName solo debe permanecer válida hasta que se devuelva NdisOpenAdapterEx . Por lo tanto, en el caso de que NdisOpenAdapterEx devuelva NDIS_STATUS_PENDING, no es necesario que el controlador continúe conservando esta cadena después de que se devuelva NdisOpenAdapterEx .

Una vez completada correctamente la operación de apertura, el autor de la llamada puede usar el valor que NDIS devolvió en NdisBindingHandle en las llamadas posteriores a las funciones NdisXxx . El autor de la llamada puede usar el miembro SelectedMediumIndex del parámetro OpenParameters para determinar cómo debe interactuar con el controlador subyacente.

Requisitos

Requisito Value
Cliente mínimo compatible Compatible con NDIS 6.0 y versiones posteriores.
Plataforma de destino Escritorio
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL PASSIVE_LEVEL
Reglas de cumplimiento de DDI Irql_Protocol_Driver_Function(ndis)

Consulte también

NDIS_OPEN_PARAMETERS

NdisRegisterProtocolDriver

ProtocolBindAdapterEx

ProtocolOpenAdapterCompleteEx