Функция ExAcquireSpinLockSharedAtDpcLevel (wdm.h)
Подпрограмма ExAcquireSpinLockSharedAtDpcLevel получает спин-блокировку для общего доступа вызывающей стороны, которая уже выполняется в IRQL >= DISPATCH_LEVEL.
Синтаксис
void ExAcquireSpinLockSharedAtDpcLevel(
PEX_SPIN_LOCK SpinLock
);
Параметры
SpinLock
[вход, выход] Указатель на блокировку спина, полученную для общего доступа. Вызывающий объект не должен владеть этой спин-блокировкой.
Возвращаемое значение
None
Remarks
При входе в эту подпрограмму вызывающий объект должен выполняться по адресу IRQL >= DISPATCH_LEVEL. Эта подпрограмма не изменяет IRQL.
Чтобы освободить блокировку спина, драйвер вызывает подпрограмму ExReleaseSpinLockSharedFromDpcLevel .
Блокировка спина — это 32-разрядная переменная типа EX_SPIN_LOCK. Драйвер должен выделить хранилище для спин-блокировки и инициализировать спин-блокировку до нуля. Это хранилище должно находиться в памяти системного пространства без памяти.
Вызывающий объект должен удерживать спин-блокировку только ненадолго, прежде чем освободить ее. Дополнительные сведения см. в статье Общие сведения о спин-блокировках.
Рекурсивное получение блокировки спина вызывает взаимоблокировку и не допускается.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista с пакетом обновления 1 (SP1) |
Верхняя часть | wdm.h |
IRQL | IRQL >= DISPATCH_LEVEL |