Функция IoAcquireVpbSpinLock (ntifs.h)
Подпрограмма IoAcquireVpbSpinLock получает спиновую блокировку блока параметров тома (VPB).
Синтаксис
void IoAcquireVpbSpinLock(
[out] PKIRQL Irql
);
Параметры
[out] Irql
Указатель на переменную, выделенную вызывающим объектом, в которой необходимо сохранить текущий irQL для последующего вызова IoReleaseVpbSpinLock. Обычно irql сохраняется в стеке в виде локальной переменной.
Возвращаемое значение
None
Remarks
Файловые системы вызывают IoAcquireVpbSpinLock , чтобы получить спиновую блокировку VPB. Эту глобальную блокировку спина необходимо получить перед доступом к любому из следующих полей VPB:
Флаги (в частности, VPB_MOUNTED)
DeviceObject
RealDevice
ReferenceCount
Каждый успешный вызов IoAcquireVpbSpinLock должен соответствовать последующему вызову IoReleaseVpbSpinLock. Чтобы предотвратить взаимоблокировку, держатель спиновой блокировки VPB должен немедленно освободить ее, когда она больше не нужна.
Перед использованием IoAcquireVpbSpinLock и IoReleaseVpbSpinLock настоятельно рекомендуется изучить, как эти подпрограммы используются в примере FASTFAT.
После вызова IoAcquireVpbSpinLock вызывающий объект выполняется в DISPATCH_LEVEL IRQL. Вызов IoReleaseVpbSpinLock восстанавливает исходный IRQL вызывающего объекта.
Требования
Требование | Значение |
---|---|
Целевая платформа | Универсальное |
Верхняя часть | ntifs.h (включая Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL |
Правила соответствия DDI | HwStorPortProhibitedDIs(storport) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по