Función NdisOidRequest (ndis.h)
La función NdisOidRequest reenvía una solicitud a los controladores subyacentes para consultar las funcionalidades o el estado de un adaptador o establecer el estado de un adaptador.
Sintaxis
NDIS_STATUS NdisOidRequest(
[in] NDIS_HANDLE NdisBindingHandle,
[in] PNDIS_OID_REQUEST OidRequest
);
Parámetros
[in] NdisBindingHandle
Identificador devuelto por la función NdisOpenAdapterEx que identifica el adaptador de destino en el enlace.
[in] OidRequest
Puntero a una estructura de NDIS_OID_REQUEST que especifica la operación solicitada con un código deXXX determinado OID_ para consultar el estado de un adaptador o para establecer el estado de un adaptador.
Valor devuelto
El controlador subyacente determina qué código NDIS_STATUS_XXX NdisOidRequest devuelve, 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 ProtocolOidRequestComplete cuando se completa la solicitud. |
|
El código OID_XXX especificado en el miembro Oid de del búfer estructurado de NDIS_OID_REQUESTen OidRequest no es válido o no es compatible con el controlador subyacente. |
|
El valor especificado en el miembro InformationBufferLength del búfer estructurado NDIS_OID_REQUEST en OidRequest no coincide con los requisitos del códigoxxx de OID_ especificado. Si el búfer de información es demasiado pequeño, el miembro BytesNeededed de contiene el valor correcto para informationBufferLength a cambio de NdisOidRequest. |
|
Los datos proporcionados en InformationBuffer en la estructura de NDIS_OID_REQUEST especificada no son válidos para el código deXXX especificado OID_. |
|
El controlador subyacente no admite la operación solicitada. |
|
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 miniport 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 o se llamará a 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 NDIS_STATUS_XXX más específicos hizo que el controlador subyacente generara un error en la solicitud. |
Observaciones
Un 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 OidRequest antes de llamar a NdisOidRequest. Ambos búferes deben asignarse desde un grupo no paginado porque el controlador subyacente se ejecuta en IRQL generado mientras procesa la solicitud.
NdisOidRequest reenvía una solicitud a controladores subyacentes o controla la propia solicitud. Si el siguiente controlador inferior es un controlador intermedio NDIS, puede llamar a NdisOidRequest con una solicitud específica del OID propia antes de completar la solicitud enviada originalmente por el controlador de nivel superior.
Algunos errores devueltos son recuperables, incluidos los siguientes:
Es decir, un controlador puede modificar el paquete en OidRequest correctamente para corregir el código deXXX de OID_ o el tamaño o contenido del búfer en InformationBuffer y volver a enviar el paquete de solicitud a NdisOidRequest. El mismo paquete puede cumplirse con la reenvío a NdisOidRequest si la llamada original indica un restablecimiento en curso o que una escasez de recursos, que podría ser temporal, impedía que se llevara a cabo esa solicitud.
La biblioteca NDIS mantiene enlaces para controladores de miniport subyacentes. NDIS puede devolver información para consultas específicas del enlace si un OID determinado está asociado a un tipo medio definido por el sistema para el que el sistema proporciona una biblioteca de filtros.
Para obtener más información sobre los OID generales y específicos de los medios y sus respectivos búferes de información asociados, consulte NDIS OIDs.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Escritorio |
encabezado de | ndis.h (incluya Ndis.h) |
biblioteca de | Ndis.lib |
irQL | <= DISPATCH_LEVEL |
reglas de cumplimiento de DDI | Irql_OID_Function(ndis) |