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 |
---|---|
|
NdisOpenAdapterEx completó correctamente la operación de apertura. |
|
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. |
|
Error de NdisOpenAdapterEx debido a recursos insuficientes. |
|
Error en NdisOpenAdapterEx porque no se encontró un adaptador de minipuerto especificado en el miembro AdapterName en OpenParameters . |
|
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. |
|
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) |