MINIPORT_OID_REQUEST función de devolución de llamada (ndis.h)
NDIS llama a la función miniportOidRe quest de un controlador de miniporte para controlar una solicitud OID para consultar o establecer información en el controlador.
Sintaxis
MINIPORT_OID_REQUEST MiniportOidRequest;
NDIS_STATUS MiniportOidRequest(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PNDIS_OID_REQUEST OidRequest
)
{...}
Parámetros
[in] MiniportAdapterContext
Identificador de un área de contexto que el controlador de miniporta asignó en su función MiniportInitializeEx. El controlador de miniporte usa este área de contexto para mantener la información de estado de un adaptador de miniporte.
[in] OidRequest
Puntero a una estructura de NDIS_OID_REQUEST que contiene el búfer y el paquete de solicitud para que el controlador de miniporte controle. Dependiendo de la solicitud, el controlador devuelve la información solicitada en la estructura proporcionada.
Valor devuelto
miniportOidRequest puede devolver uno de los siguientes valores de estado:
Código devuelto | Descripción |
---|---|
|
El controlador de miniporte ha establecido o obtenido los datos según se solicite. |
|
El controlador de minipuerto completará la solicitud de forma asincrónica. Después de que el controlador de miniporte haya completado todo el procesamiento, debe llamar al función NdisMOidRequestComplete para informar a NDIS de que la solicitud se ha completado. |
|
La solicitud, especificada en OidRequest, no es válida o no se reconoce. |
|
La solicitud, especificada en OidRequest, se reconoce, pero no es compatible con el controlador de miniport. |
|
El búfer, proporcionado en OidRequest, es demasiado pequeño para contener los datos solicitados. |
|
El valor especificado en el miembro InformationBufferLength de la estructura NDIS_OID_REQUEST en OidRequest es incorrecto para el código de OID_ XXX especificado. |
|
Uno o varios de los parámetros especificados para la solicitud en OidRequest no son válidos. |
|
Después de llamar a función MiniportDevicePnPEventNotify para indicar una eliminación sorpresa, NDIS llama a la función MiniportHaltEx del controlador. Si el controlador recibe solicitudes de OID antes de llamar a NDIS MiniportHaltEx, debe completar inmediatamente dichas solicitudes con un valor de estado de NDIS_STATUS_NOT_ACCEPTED. |
|
El controlador de miniporte detuvo el procesamiento de la solicitud. Por ejemplo, NDIS llamó a la función MiniportResetEx. |
|
El controlador de miniporte proporcionará un estado de finalización de OID con una indicación de estado posterior. Un controlador de miniport no puede devolver NDIS_STATUS_INDICATION_REQUIRED a menos que el OID concreto lo permita. Para determinar si se permite este estado, consulte la página de referencia de OID. Para obtener más información sobre NDIS_STATUS_INDICATION_REQUIRED, consulte NDIS_OID_REQUEST y NDIS_STATUS_INDICATION. |
Observaciones
Un controlador especifica el MiniportOidRequest punto de entrada cuando llama a . función NdisMRegisterMiniportDriver.
NDIS llama a la función MiniportOidRequest en su propio nombre o en nombre de un controlador de protocolo enlazado que llamó a la función NdisOidRequest. Los controladores de miniport deben examinar la solicitud proporcionada en OidRequest y realizar la acción solicitada. Para obtener más información sobre los OID que controlan los controladores de miniporte, consulte NDIS OIDs.
Tenga en cuenta que NDIS no valida el contenido específico del OID en OidRequest . Por lo tanto, el propio controlador debe validar este contenido. Si el controlador determina que el valor que se va a establecer está fuera de los límites, debe producir un error en la solicitud y devolver NDIS_STATUS_INVALID_DATA.
Si MiniportOidRequest devuelve NDIS_STATUS_PENDING, NDIS no llamará a MiniportOidRequest con otra solicitud, para el adaptador de miniport especificado en MiniportAdapterContext, hasta que se complete la solicitud pendiente.
Ejemplos de
Para definir un función de MiniportOidRequest, primero debe proporcionar una declaración de función que identifique el tipo de función que va a definir. Windows proporciona un conjunto de tipos de función para controladores. Declarar una función mediante los tipos de función ayuda a análisis de código para controladores, comprobador de controladores estáticos (SDV) y otras herramientas de comprobación encuentran errores y es un requisito para escribir controladores para el sistema operativo Windows.Por ejemplo, para definir un miniportOidRequest función denominada "MyOidRequest", use el tipo MINIPORT_OID_REQUEST tal como se muestra en este ejemplo de código:
MINIPORT_OID_REQUEST MyOidRequest;
A continuación, implemente la función de la siguiente manera:
_Use_decl_annotations_
NDIS_STATUS
MyOidRequest(
NDIS_HANDLE MiniportAdapterContext,
PNDIS_OID_REQUEST OidRequest
)
{...}
El tipo de función MINIPORT_OID_REQUEST se define en el archivo de encabezado Ndis.h. Para identificar con más precisión los errores al ejecutar las herramientas de análisis de código, asegúrese de agregar la anotación Use_decl_annotations a la definición de función. La anotación Use_decl_annotations garantiza que se usen las anotaciones que se aplican al tipo de función MINIPORT_OID_REQUEST en el archivo de encabezado. Para obtener más información sobre los requisitos de las declaraciones de función, vea Declaración de funciones mediante el uso de tipos de roles de función para controladores NDIS.
Para obtener información sobre Use_decl_annotations, vea Anotación del comportamiento de la función.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Se admite en NDIS 6.0 y versiones posteriores. |
de la plataforma de destino de | Windows |
encabezado de | ndis.h (incluya Ndis.h) |
irQL | PASSIVE_LEVEL |
reglas de cumplimiento de DDI | NdisOidComplete, NdisOidDoubleComplete, NdisOidDoubleRequest, NdisTimedOidComplete, WlanAssociation, WlanDisassociation, WlanTimedAssociation, WlanTimedConnectionRoaming, WlanTimedConnectRequest, WlanTimedLinkQuality, WlanTimedScan |