WdfWaitLockCreate, fonction (wdfsync.h)
[S’applique à KMDF et UMDF]
La méthode WdfWaitLockCreate crée un objet de verrouillage d’attente d’infrastructure.
Syntaxe
NTSTATUS WdfWaitLockCreate(
[in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
[out] WDFWAITLOCK *Lock
);
Paramètres
[in, optional] LockAttributes
Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui spécifie les attributs de l’objet wait-lock. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[out] Lock
Pointeur vers un emplacement qui reçoit un handle vers un nouvel objet de verrouillage d’attente d’infrastructure.
Valeur retournée
WdfWaitLockCreate retourne STATUS_SUCCESS si l’opération réussit.
Pour obtenir la liste des autres valeurs de retour que la méthode WdfWaitLockCreate peut retourner, consultez Erreurs de création d’objet Framework.
Cette méthode peut également retourner d’autres valeurs NTSTATUS.
Remarques
La méthode WdfWaitLockCreate crée un objet de verrouillage d’attente d’infrastructure. Après avoir créé un objet wait-lock, un pilote peut appeler WdfWaitLockAcquire pour acquérir le verrou et WdfWaitLockRelease pour libérer le verrou.
Par défaut, le parent du nouvel objet wait-lock est l’objet de pilote d’infrastructure créé par la méthode WdfDriverCreate . Vous pouvez utiliser le membre ParentObject de la structure WDF_OBJECT_ATTRIBUTES pour spécifier un autre parent. L’infrastructure supprime l’objet wait-lock lorsqu’il supprime l’objet parent. Si votre pilote ne modifie pas le parent par défaut, il doit supprimer l’objet wait-lock lorsqu’il a terminé d’utiliser l’objet ; sinon, l’objet restera jusqu’à ce que le gestionnaire d’E/S décharge votre pilote.
Pour plus d’informations sur les verrous d’attente, consultez Techniques de synchronisation pour les pilotes Framework-Based.
Exemples
L’exemple de code suivant initialise un WDF_OBJECT_ATTRIBUTES, spécifie que l’objet parent du verrou d’attente sera un objet d’appareil et appelle WdfWaitLockCreate.
WDF_OBJECT_ATTRIBUTES attributes;
WDFWAITLOCK lockHandle;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfWaitLockCreate(
&attributes,
&lockHandle
);
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
Version KMDF minimale | 1.0 |
Version UMDF minimale | 2.0 |
En-tête | wdfsync.h (inclure Wdf.h) |
Bibliothèque | Wdf01000.sys (KMDF) ; WUDFx02000.dll (UMDF) |
IRQL | <=DISPATCH_LEVEL |
Règles de conformité DDI | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf), ParentObjectCheckLock(kmdf) |