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 le runtime d’intégration actuel pour un appel ultérieur à IoReleaseVpbSpinLock. En règle générale, le Irql est enregistré sur la pile en tant que variable locale.
Valeur de retour
Aucun
Remarques
Les systèmes de fichiers appellent IoAcquireVpbSpinLock pour acquérir le verrou de rotation VPB. Ce verrou de rotation global 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 ultérieur à IoReleaseVpbSpinLock. Pour empêcher l’interblocage, le titulaire du verrou de rotation VPB doit le libérer 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 au DISPATCH_LEVEL IRQL. L’appel IoReleaseVpbSpinLock restaure l’IRQL d’origine de l’appelant.