Fonction IoAcquireVpbSpinLock (ntifs.h)
La routine IoAcquireVpbSpinLock acquiert le verrou de rotation VPB (Volume Parameter Block).
Syntaxe
void IoAcquireVpbSpinLock(
[out] PKIRQL Irql
);
Paramètres
[out] Irql
Pointeur vers une variable allouée par l’appelant dans laquelle enregistrer l’IRQL actuel pour un appel ultérieur à IoReleaseVpbSpinLock. En règle générale, l’Irql est enregistré sur la pile en tant que variable locale.
Valeur de retour
None
Remarques
Les systèmes de fichiers appellent IoAcquireVpbSpinLock pour acquérir le verrou de rotation VPB. Ce verrou de rotation globale doit être acquis avant d’accéder à l’un des champs suivants d’un VPB :
Indicateurs (en particulier, VPB_MOUNTED)
DeviceObject
RealDevice
ReferenceCount
Chaque appel réussi à IoAcquireVpbSpinLock doit être mis en correspondance par un appel suivant à IoReleaseVpbSpinLock. Pour éviter l’interblocage, le titulaire du verrou de rotation VPB doit le relâcher immédiatement lorsqu’il n’est plus nécessaire.
Avant d’utiliser IoAcquireVpbSpinLock et IoReleaseVpbSpinLock, les enregistreurs de pilotes sont fortement encouragés à étudier la façon dont ces routines sont utilisées dans l’exemple FASTFAT.
Après avoir appelé IoAcquireVpbSpinLock, l’appelant s’exécute à l’DISPATCH_LEVEL IRQL. L’appel d’IoReleaseVpbSpinLock restaure l’IRQL d’origine de l’appelant.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Règles de conformité DDI | HwStorPortProhibitedDDIs(storport) |