WdfDeviceInitSetPowerNotPageable, fonction (wdfdevice.h)
[S’applique à KMDF uniquement]
La méthode WdfDeviceInitSetPowerNotPageable informe le gestionnaire d’alimentation que le pilote n’accède pas aux données paginables pendant que le système passe d’un état de veille à l’état de travail (S0).
Syntaxe
void WdfDeviceInitSetPowerNotPageable(
[in] PWDFDEVICE_INIT DeviceInit
);
Paramètres
[in] DeviceInit
Pointeur fourni par l’appelant vers une structure WDFDEVICE_INIT .
Valeur de retour
None
Remarques
Si votre pilote de fonction ou de bus appelle WdfDeviceInitSetPowerNotPageable, il se peut que l’appareil du fichier de pagination système ne soit pas dans son état de fonctionnement (D0) lorsque l’appareil de votre pilote passe à un état de faible consommation ou qu’il revient à son état de fonctionnement. Par conséquent, pendant les transitions d’alimentation de votre appareil, votre pilote ne doit effectuer aucune opération susceptible d’amener le système d’exploitation à accéder au fichier de pagination. Ces opérations incluent l’accès aux fichiers, au Registre ou au pool paginé.
Par défaut, l’infrastructure permet l’accès aux données paginables pour les pilotes de fonction. L’infrastructure utilise le paramètre de l’appareil parent pour chaque appareil enfant énuméré par un pilote de bus, sauf si le pilote de bus appelle WdfDeviceInitSetPowerPageable ou WdfDeviceInitSetPowerNotPageable pour l’appareil enfant. Si vous écrivez un pilote de bus qui appelle WdfDeviceInitSetPowerPageable pour un appareil enfant, aucun pilote dans la pile de l’appareil enfant ne peut appeler WdfDeviceInitSetPowerNotPageable.
L’appel de WdfDeviceInitSetPowerPageable ou WdfDeviceInitSetPowerNotPageable à partir d’un pilote de filtre n’a aucun effet. L’infrastructure utilise le paramètre spécifié par le pilote inférieur suivant.
La plupart des pilotes n’ont pas besoin d’appeler WdfDeviceInitSetPowerPageable ou WdfDeviceInitSetPowerNotPageable. Au lieu de cela, vous devez laisser l’infrastructure utiliser le paramètre par défaut approprié pour votre pilote. Toutefois, votre pilote doit appeler WdfDeviceInitSetPowerNotPageable si le pilote fait partie d’une pile de pilotes qui ne doit pas accéder aux données paginables pendant les transitions d’alimentation (telles que la pile de stockage ou la pile vidéo), ou si le pilote est un pilote de bus qui énumère les périphériques qui peuvent être des périphériques de stockage ou vidéo.
Si votre pilote appelle WdfDeviceInitSetPowerNotPageable, il doit le faire avant d’appeler WdfDeviceCreate.
Pour plus d’informations sur l’appel de WdfDeviceCreate, consultez Création d’un objet d’appareil framework.
Exemples
L’exemple de code suivant informe le gestionnaire d’alimentation qu’un pilote n’accède pas aux données paginables pendant que le système passe d’un état de veille à l’état de fonctionnement (S0).
WdfDeviceInitSetPowerNotPageable(DeviceInit);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
En-tête | wdfdevice.h (inclure Wdf.h) |
Bibliothèque | Wdf01000.sys (consultez Gestion des versions de la bibliothèque d’infrastructure).) |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | ChildDeviceInitAPI(kmdf), DeviceInitAPI(kmdf), DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), PdoDeviceInitAPI(kmdf) |