Initialisation des pilotes intermédiaires pour gérer les événements PnP et de gestion de l’alimentation
Pour gérer les événements de Plug-and-Play (PnP) et de gestion de l’alimentation, les pilotes intermédiaires NDIS doivent effectuer les opérations suivantes :
Lorsque NDIS appelle la fonction ProtocolBindAdapterEx du pilote intermédiaire, le paramètre BindParameters pointe vers une structure NDIS_PM_CAPABILITIES qui contient les fonctionnalités de l’adaptateur miniport sous-jacent. Les fonctionnalités de gestion de l’alimentation sont signalées dans l’un des membres suivants :
PowerManagementCapabilities
Pour les pilotes intermédiaires NDIS 6.0 et NDIS 6.1, ce membre contient les fonctionnalités de gestion de l’alimentation au sein d’une structure NDIS_PNP_CAPABILITIES. Pour plus d’informations sur cette structure, consultez OID_PNP_CAPABILITIES.
Note Pour les pilotes intermédiaires NDIS 6.20 et ultérieur, le membre PowerManagementCapabilities est défini sur NULL et les fonctionnalités de gestion de l’alimentation sont signalées dans le membre PowerManagementCapabilitiesEx .
PowerManagementCapabilitiesEx
Pour les pilotes intermédiaires NDIS 6.20 et ultérieur, ce membre contient les fonctionnalités de gestion de l’alimentation au sein d’une structure NDIS_PM_CAPABILITIES .
Note Pour les pilotes intermédiaires NDIS 6.0 et NDIS 6.1, le membre PowerManagementCapabilitiesEx est défini sur NULL et les fonctionnalités de gestion de l’alimentation sont signalées dans le membre PowerManagementCapabilities .
Note Si l’adaptateur miniport sous-jacent ne prend pas en charge les événements de gestion de l’alimentation, les membres PowerManagementCapabilitiesEx et PowerManagementCapabilitiesEx sont définis sur NULL.
Lorsque NDIS appelle MiniportInitializeEx pour chaque miniport virtuel pris en charge par le pilote intermédiaire NDIS, le pilote signale ses fonctionnalités de gestion de l’alimentation en appelant NdisMSetMiniportAttributes des manières suivantes :
Selon la version du pilote intermédiaire NDIS, les fonctionnalités de gestion de l’alimentation sont signalées dans le membre PowerManagementCapabilities (pour les pilotes intermédiaires NDIS 6.0 et NDIS 6.1) ou dans le membre PowerManagementCapabilitiesEx (pour les pilotes intermédiaires NDIS 6.20 et ultérieurs) de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES. Si le membre PowerManagementCapabilities ou PowerManagementCapabilitiesEx de la structure NDIS_BIND_PARAMETERS n’est pas NULL, le pilote intermédiaire doit effectuer les opérations suivantes :
Enregistrez les valeurs d’origine des membres MinMagicPacketWakeUp, MinPatternWakeUp et MinLinkChangeWakeUp des membres PowerManagementCapabilities(NDIS 6.0 et NDIS 6.1) ou PowerManagementCapabilitiesEx(NDIS 6.20 et versions ultérieures).
Désactivez la fonctionnalité de gestion de l’alimentation en définissant les membres MinMagicPacketWakeUp, MinPatternWakeUp et MinLinkChangeWakeUp sur NdisDeviceStateUnspecified.
Transmettez l’adresse de la structure de NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES modifiée en tant que paramètre MiniportAttributes dans l’appel à NdisMSetMiniportAttributes.
Un pilote intermédiaire doit définir l’indicateur NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND dans le membre AttributeFlags de la structure NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES . Le pilote doit passer l’adresse de cette structure en tant que paramètre MiniportAttributes dans l’appel à NdisMSetMiniportAttributes.
Pour plus d’informations sur les exigences d’initialisation des pilotes intermédiaires NDIS, consultez Initialisation des miniports virtuels.