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 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)

Voir aussi

IoReleaseVpbSpinLock