Функция 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) |