Función NdisDirectOidRequest (ndis.h)
La función NdisDirectOidRequest reenvía una solicitud de OID directa a los controladores subyacentes para consultar las funcionalidades o el estado de un adaptador o establecer el estado de un adaptador.
Sintaxis
NDIS_STATUS NdisDirectOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parámetros
[in] NdisBindingHandle
Identificador que devuelve la función NdisOpenAdapterEx que identifica el adaptador de miniporte de destino en el enlace.
[in] OidRequest
Puntero a una estructura NDIS_OID_REQUEST que especifica la operación solicitada con un código OID_Xxx determinado para consultar el estado de un adaptador o para establecer el estado de un adaptador.
Valor devuelto
El controlador subyacente determina qué NDIS_STATUS_XXX devuelve el código NdisDirectOidRequest , pero normalmente es uno de los siguientes valores:
Código devuelto | Descripción |
---|---|
|
La operación de solicitud se completó correctamente. |
|
La solicitud se controla de forma asincrónica y NDIS llamará al autor de la llamada. Función ProtocolDirectOidRequestComplete cuando se completa la solicitud. |
|
El código OID_Xxx especificado en el miembro Oid del búfer estructurado NDIS_OID_REQUEST en OidRequest no era válido o no era compatible con el controlador subyacente. |
|
El valor especificado en el miembro InformationBufferLength del búfer estructurado NDIS_OID_REQUEST en OidRequest no coincidía con los requisitos del código OID_Xxx especificado. Si el búfer de información era demasiado pequeño, el miembro BytesNeeded contiene el valor correcto para InformationBufferLength en la devolución de NdisDirectOidRequest. |
|
Los datos proporcionados en InformationBuffer en la estructura de NDIS_OID_REQUEST especificada no eran válidos para el código OID_Xxx especificado. |
|
El controlador subyacente no admite la operación solicitada. Para NdisDirectOidRequest, NDIS también puede devolver este estado si el controlador de llamada no ha registrado un Función ProtocolDirectOidRequestComplete . |
|
No se pudo satisfacer la solicitud debido a una escasez de recursos. Normalmente, este valor devuelto indica que un intento de asignar memoria no se realizó correctamente, pero no indica necesariamente que se producirá un error en la misma solicitud, enviada más adelante, por el mismo motivo. |
|
El controlador subyacente intentó la operación solicitada, normalmente un conjunto en una NIC, pero se produjo un error. Por ejemplo, un intento de establecer demasiadas direcciones de multidifusión podría provocar la devolución de este valor. |
|
El controlador subyacente produjo un error en la operación solicitada porque hay una operación de cierre en curso. |
|
El controlador de minipuerto subyacente no puede satisfacer la solicitud en este momento porque actualmente está restableciendo la NIC afectada. Se llamó a la función ProtocolStatusEx del autor de la llamada con NDIS_STATUS_RESET_START para indicar que un restablecimiento está en curso. Este valor devuelto no indica necesariamente que se producirá un error en la misma solicitud, enviada más adelante, por el mismo motivo. |
|
Este valor suele ser un valor predeterminado no específico, que se devuelve cuando ninguno de los valores de NDIS_STATUS_Xxx más específicos hizo que el controlador subyacente generara un error en la solicitud. |
Comentarios
La función NdisDirectOidRequest no se puede usar para solicitudes OID generales. En el caso de las solicitudes OID generales, use la función NdisOidRequest en su lugar. NdisDirectOidRequest solo se puede usar para los NDIS compatibles con NDIS para su uso con la interfaz OID directa. Por ejemplo, se pueden usar los siguientes OID:
OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_DELETE_SA OID_TCP_TASK_IPSEC_OFFLOAD_V2_UPDATE_SAUn controlador de protocolo debe asignar memoria suficiente para contener el búfer de información asociado al OID especificado. El controlador también debe asignar y configurar el búfer en el parámetro OidRequest antes de llamar a NdisDirectOidRequest. Ambos búferes deben asignarse desde un grupo no paginado porque el controlador subyacente se ejecuta en IRQL elevado mientras procesa la solicitud.
NdisDirectOidRequest reenvía una solicitud a los controladores subyacentes o controla la propia solicitud. Si el controlador siguiente inferior es un controlador intermedio NDIS, el controlador intermedio puede llamar a NdisDirectOidRequest con una solicitud específica de OID propia antes de completar la solicitud que el controlador de nivel superior envió originalmente.
Un controlador que llama a NdisDirectOidRequest debe registrar el Función ProtocolDirectOidRequestComplete .
La interfaz de solicitud OID directa es similar a la interfaz de solicitud OID general. Para obtener más información sobre cómo emitir solicitudes generales, vea NdisOidRequest.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Se admite en NDIS 6.1 y versiones posteriores. |
Plataforma de destino | Escritorio |
Encabezado | ndis.h (incluya Ndis.h) |
Library | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |