Compartir a través de


Control de solicitudes Query y Set de OID_PNP_Xxx

El minipuerto virtual de un controlador intermedio debe exportar la función MiniportOidRequest. NDIS llama a la función MiniportOidRequest del controlador intermedio cuando un controlador superpuesto que está enlazado al minipuerto virtual del controlador intermedio llama a NdisOidRequest para consultar o establecer objetos de información (OID_Xxx). NDIS también puede llamar a MiniportOidRequest en su propio nombre. Para obtener más información sobre el identificador de controladores de minipuerto de establecimientos y consultas en objetos de información, consulte Obtención y establecimiento de información del controlador de minipuerto y compatibilidad con NDIS para WMI.

El controlador intermedio debe conservar información sobre las funciones de los adaptadores de minipuerto subyacentes que recibe en la función ProtocolBindAdapterEx. Si el adaptador de minipuerto no es compatible con la administración de energía, NDIS establece el miembro PowerManagementCapabilities de NDIS_BIND_PARAMETERS en NULL.

El controlador intermedio puede consultar o establecer un OID_Xxx que mantiene el controlador de minipuerto subyacente. Lo hace con NdisOidRequest (si el controlador intermedio tiene un borde inferior sin conexión) o con NdisCoOidRequest (si el controlador intermedio tiene un borde inferior orientado a la conexión).

Un controlador intermedio debe controlar las consultas y los conjuntos de la siguiente manera:

  • OID_PNP_CAPABILITIES

    En respuesta a esta consulta de OID, los controladores intermedios deben notificar las funcionalidades PnP de los adaptadores de minipuerto físico subyacentes. Tenga en cuenta que los adaptadores de minipuerto para dispositivos físicos no reciben esta consulta OID.

    El controlador intermedio recibe las funcionalidades PnP de los adaptadores de minipuerto subyacentes en los parámetros de enlace. Debe pasarlos a controladores excesivamente adecuados para el uso previsto del controlador intermedio. Los controladores intermedios y los controladores de minipuerto notifican las funcionalidades de PnP en los atributos del adaptador de minipuerto. El controlador intermedio no emite OID_PNP_CAPABILITIES solicitudes al controlador de minipuerto subyacente. Si el adaptador de minipuerto subyacente es compatible con la administración de energía, en la estructura NDIS_PM_WAKE_UP_CAPABILITIES en los atributos de minipuerto virtual, el controlador intermedio debe especificar un estado de energía del dispositivo de NdisDeviceStateUnspecified para cada funcionalidad de reactivación:

    • MinMagicPacketWakeUp
    • MinPatternWakeUp
    • MinLinkChangeWakeUp

    Este valor indica que el controlador intermedio es compatible con la administración de energía, pero no puede reactivar el sistema.

  • OID_PNP_QUERY_POWER y OID_PNP_SET_POWER

    El controlador intermedio siempre debe devolver NDIS_STATUS_SUCCESS a una consulta de OID_PNP_QUERY_POWER o a un establecimiento de OID_PNP_SET_POWER. El controlador intermedio nunca debe propagar ninguna de estas solicitudes OID al controlador de minipuerto subyacente.

  • "OID de reactivación"

    Si una NIC subyacente es compatible con la administración de energía, el controlador intermedio debe pasar al controlador de minipuerto subyacente (llamando a NdisOidRequest o NdisCoOidRequest) el siguiente OID_PNP_Xxx relacionado con los eventos de reactivación:

    OID_PNP_ENABLE_WAKE_UP

    OID_PNP_ADD_WAKE_UP_PATTERN

    OID_PNP_REMOVE_WAKE_UP_PATTERN

    OID_PNP_WAKE_UP_PATTERN_LIST

    OID_PNP_WAKE_UP_ERROR

    OID_PNP_WAKE_UP_OK

El controlador intermedio también debe propagar la respuesta del controlador de minipuerto subyacente a estos OID a los controladores de protocolo excesivo.

Si el adaptador de minipuerto subyacente no es compatible con la administración de energía, el controlador de minipuerto establece el miembro PowerManagementCapabilities de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES en NULL y NDIS establece el miembro PowerManagementCapabilities de NDIS_BIND_PARAMETERS en NULL.

Si un adaptador de minipuerto subyacente no es compatible con la administración de energía, el controlador intermedio debe devolver NDIS_STATUS_NOT_SUPPORTED en respuesta a una consulta o conjunto de estos OID.