IoAcquireVpbSpinLock-Funktion (ntifs.h)
Die IoAcquireVpbSpinLock Routine übernimmt die Volume Parameter Block (VPB)-Drehsperre.
Syntax
void IoAcquireVpbSpinLock(
[out] PKIRQL Irql
);
Parameter
[out] Irql
Zeiger auf eine vom Aufrufer zugewiesene Variable, in der die aktuelle IRQL für einen nachfolgenden Aufruf von IoReleaseVpbSpinLockgespeichert werden soll. Normalerweise wird die Irql- im Stapel als lokale Variable gespeichert.
Rückgabewert
Nichts
Bemerkungen
Dateisysteme rufen IoAcquireVpbSpinLock auf, um die VPB-Drehsperre zu erwerben. Diese globale Spin-Sperre muss vor dem Zugriff auf eines der folgenden Felder eines VPB erworben werden:
Flags (insbesondere VPB_MOUNTED)
DeviceObject
RealDevice
ReferenceCount
Jeder erfolgreiche Aufruf von IoAcquireVpbSpinLock muss mit einem nachfolgenden Aufruf von IoReleaseVpbSpinLockabgeglichen werden. Um deadlock zu verhindern, muss der Inhaber der VPB Spin-Sperre ihn sofort freigeben, wenn er nicht mehr benötigt wird.
Vor der Verwendung von IoAcquireVpbSpinLock und IoReleaseVpbSpinLockwerden Treiberautoren dringend ermutigt, die Art und Weise zu untersuchen, wie diese Routinen im FASTFAT-Beispiel verwendet werden.
Nach dem Aufrufen IoAcquireVpbSpinLockwird der Aufrufer bei IRQL-DISPATCH_LEVEL ausgeführt. Durch Aufrufen IoReleaseVpbSpinLock wird die ursprüngliche IRQL des Aufrufers wiederhergestellt.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL |
DDI-Complianceregeln | HwStorPortProhibitedDIs(storport) |