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 |
---|---|
|
La operación de solicitud se completó correctamente. |
|
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. |
|
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. |
|
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. |
|
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. 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. |
|
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 |