Función NdisSynchronousOidRequest (ndis.h)

Los controladores de protocolo llaman a la función NdisSynchronousOidRequest para originar una nueva solicitud de OID sincrónica y emitirla a los controladores subyacentes.

Sintaxis

NDIS_STATUS NdisSynchronousOidRequest(
  [in] NDIS_HANDLE      NdisBindingHandle,
  [in] NDIS_OID_REQUEST *OidRequest
);

Parámetros

[in] NdisBindingHandle

Identificador devuelto por la función NdisOpenAdapterEx que identifica el adaptador de miniporte 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 OID_Xxx determinado. La estructura puede especificar una consulta de OID, un conjunto o una solicitud de método.

Valor devuelto

El controlador subyacente determina qué NDIS_STATUS_XXX devuelve NdisSynchronousOidRequest , pero normalmente es uno de los siguientes valores:

Código devuelto Descripción
NDIS_STATUS_SUCCESS
La operación de solicitud se completó correctamente.
NDIS_STATUS_INVALID_OID
El código OID_Xxx que se especificó en el miembro Oid del búfer estructurado de NDIS_OID_REQUEST en OidRequest no era válido o no era compatible con el controlador subyacente.
NDIS_STATUS_INVALID_LENGTH o NDIS_STATUS_BUFFER_TOO_SHORT
El valor especificado en el miembro InformationBufferLength del búfer estructurado de 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 NdisSynchronousOidRequest.
NDIS_STATUS_INVALID_DATA
Los datos proporcionados en InformationBuffer en la estructura de NDIS_OID_REQUEST especificada no eran válidos para el código OID_Xxx especificado.
NDIS_STATUS_NOT_SUPPORTED o NDIS_STATUS_NOT_RECOGNIZED
El controlador subyacente no admite la operación solicitada.
NDIS_STATUS_RESOURCES
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.
NDIS_STATUS_NOT_ACCEPTED
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.
NDIS_STATUS_CLOSING o NDIS_STATUS_CLOSING_INDICATING
El controlador subyacente produjo un error en la operación solicitada porque hay una operación de cierre en curso.
NDIS_STATUS_RESET_IN_PROGRESS
El controlador de miniport subyacente no puede satisfacer la solicitud en este momento porque actualmente está restableciendo la NIC afectada. La función ProtocolStatusEx del autor de la llamada era o se llamará 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.
NDIS_STATUS_FAILURE
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 NdisSynchronousOidRequest no se puede usar para las solicitudes OID generales. En el caso de las solicitudes OID generales, use la función NdisOidRequest en su lugar. NdisSynchronousOidRequest solo se puede usar para los OID que admite NDIS para su uso con la interfaz OID sincrónica. La mayoría de los controladores de protocolo no necesitan llamar a NdisSynchronousOidRequest

Los controladores de protocolo no deben cerrar el enlace del adaptador hasta que se completen las solicitudes de OID sincrónicas originadas por el controlador de protocolo.

Los controladores de protocolo no son necesarios para implementar ProtocolOidRequestComplete o ProtocolDirectOidRequestComplete para llamar a NdisSynchronousOidRequest. Como su nombre sugiere, una solicitud de OID sincrónica siempre se completa sincrónicamente, por lo que no hay ninguna devolución de llamada asincrónica.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 10, versión 1709
Plataforma de destino Universal
Encabezado ndis.h (incluya Ndis.h)
Library Ndis.lib
IRQL <= DISPATCH_LEVEL

Consulte también

NDIS_OID_REQUEST

NdisOidRequest

NdisOpenAdapterEx

ProtocolDirectOidRequestComplete

ProtocolOidRequestComplete

ProtocolStatusEx