Регистрация процедуры отмены
Если драйвер устройства имеет подпрограмму StartIo , его подпрограммы диспетчеризации могут зарегистрировать подпрограмму Отмена , указав ее адрес в качестве входных данных в IoStartPacket.
Если у драйвера нет процедуры StartIo , его диспетчеризация должна выполнять следующие действия перед постановкой IRP в очередь для дальнейшей обработки другими подпрограммами драйвера:
Вызовите IoAcquireCancelSpinLock.
Вызовите IoSetCancelRoutine с входным IRP и точкой входа для предоставленной драйвером процедуры Cancel .
Вызовите IoReleaseCancelSpinLock.
Сведения об отмене спиновой блокировки см. в разделе Использование системной отмены спин-блокировки.
Драйверам, которые управляют собственными очередями irP, вместо использования очереди устройств, предоставленной диспетчером ввода-вывода, при вызове IoSetCancelRoutine не требуется получать блокировку отмены вращения. Тем не менее эти драйверы должны проверка указатель на подпрограмму Отмена, который возвращает IoSetCancelRoutine, чтобы определить, запущена ли подпрограмма Отмена.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по