Partager via


WdfWaitLockCreate, fonction (wdfsync.h)

[S’applique à KMDF et UMDF]

La méthode WdfWaitLockCreate crée un objet de verrouillage d’attente du framework.

Syntaxe

NTSTATUS WdfWaitLockCreate(
  [in, optional] PWDF_OBJECT_ATTRIBUTES LockAttributes,
  [out]          WDFWAITLOCK            *Lock
);

Paramètres

[in, optional] LockAttributes

Pointeur vers une structure WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui spécifie des attributs pour 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 du framework.

Valeur de retour

WdfWaitLockCreate retourne STATUS_SUCCESS si l’opération réussit.

Pour obtenir la liste d’autres valeurs de retour que la méthode WdfWaitLockCreate peut retourner, consultez Framework Object Creation Errors.

Cette méthode peut également retourner d’autres valeurs NTSTATUS .

Remarques

La méthode WdfWaitLockCreate crée un objet de verrouillage d’attente du framework. 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 nouveau parent de l’objet de verrouillage d’attente est l’objet de pilote d’infrastructure que la méthode WdfDriverCreate créée. Vous pouvez utiliser le membre ParentObject de la structure WDF_OBJECT_ATTRIBUTES pour spécifier un parent différent. L’infrastructure supprime l’objet wait-lock lorsqu’il supprime l’objet parent. Si votre pilote ne modifie pas le parent par défaut, le pilote doit supprimer l’objet wait-lock une fois l’objet terminé à l’aide de l’objet ; sinon, l’objet reste 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
                           );

Exigences

Exigence Valeur
plateforme cible Universel
version minimale de KMDF 1.0
version minimale de UMDF 2.0
d’en-tête wdfsync.h (include 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)

Voir aussi

WDF_OBJECT_ATTRIBUTES

WdfDriverCreate

WdfWaitLockAcquire

WdfWaitLockRelease