Partager via


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.

Exigences

Exigence Valeur
plateforme cible Universel
d’en-tête ntifs.h (include Ntifs.h)
bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL
règles de conformité DDI HwStorPortProhibitedDDIs(storport)

Voir aussi

IoReleaseVpbSpinLock