WdfSpinLockCreate, fonction (wdfsync.h)
[S’applique à KMDF et UMDF]
La méthode WdfSpinLockCreate crée un objet de spin-lock d’infrastructure.
Syntaxe
NTSTATUS WdfSpinLockCreate(
[in, optional] PWDF_OBJECT_ATTRIBUTES SpinLockAttributes,
[out] WDFSPINLOCK *SpinLock
);
Paramètres
[in, optional] SpinLockAttributes
Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES allouée à l’appelant qui spécifie les attributs de l’objet spin-lock. Ce paramètre est facultatif et peut être WDF_NO_OBJECT_ATTRIBUTES.
[out] SpinLock
Pointeur vers un emplacement qui reçoit un handle vers un nouvel objet de verrouillage de rotation de l’infrastructure.
Valeur retournée
WdfSpinLockCreate retourne STATUS_SUCCESS si l’opération réussit.
Pour obtenir la liste des autres valeurs de retour que la méthode WdfSpinLockCreate peut retourner, consultez Erreurs de création d’objet Framework.
Cette méthode peut également retourner d’autres valeurs NTSTATUS.
Remarques
La méthode WdfSpinLockCreate crée un objet de spin-lock d’infrastructure. Après avoir créé un objet spin-lock, un pilote peut appeler WdfSpinLockAcquire pour acquérir le verrou et WdfSpinLockRelease pour libérer le verrou.
Par défaut, le parent du nouvel objet spin-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 spin-lock lorsqu’il supprime l’objet parent. Si votre pilote ne modifie pas le parent par défaut, il doit supprimer l’objet spin-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 de rotation, 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 de rotation sera un objet d’appareil et appelle WdfSpinLockCreate.
WDF_OBJECT_ATTRIBUTES attributes;
WDFSPINLOCK lockHandle;
WDF_OBJECT_ATTRIBUTES_INIT(&attributes);
attributes.ParentObject = Device;
status = WdfSpinLockCreate(
&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), WdfSpinlock(kmdf) |