Функция IoAcquireCancelSpinLock (wdm.h)

Подпрограмма IoAcquireCancelSpinLock синхронизирует переходы состояния с возможностью отмены для irP в многопроцессорном режиме.

Синтаксис

void IoAcquireCancelSpinLock(
  PKIRQL Irql
);

Параметры

Irql

[out] Указатель на переменную, в которой необходимо сохранить текущий IRQL для последующего вызова IoReleaseCancelSpinLock. Как правило, irql сохраняется в стеке в виде локальной переменной.

Возвращаемое значение

None

Remarks

Драйвер, использующий очереди устройств, предоставляемые диспетчером ввода-вывода, в объекте устройства, должен удерживать блокировку отмены при каждом изменении состояния отмены IRP с помощью IoSetCancelRoutine.

Драйверу, который управляет собственной очередью IRP, не нужно удерживать блокировку отмены при вызове IoSetCancelRoutine.

Владелец блокировки отмены спина должен быстро освободить ее, вызвав IoReleaseCancelSpinLock.

Процедура отмены , предоставляемая драйвером, вызывается с удержанной блокировкой отмены спина. Он должен освободить блокировку отмены спина после завершения IRP для отмены.

Требования

Требование Значение
Минимальная версия клиента Windows 2000
Верхняя часть wdm.h
IRQL <=DISPATCH_LEVEL
Правила соответствия DDI CancelSpinLock(storport), CancelSpinLock(wdm), CancelSpinlockRelease(wdm), HwStorPortProhibitedDIs(storport), SpinLockSafe(storport), SpinLockSafe(wdm)

См. также раздел

IoReleaseCancelSpinLock

IoSetCancelRoutine