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

Подпрограмма IoCsqInitialize инициализирует таблицу диспетчеризации безопасной для отмены очереди IRP драйвера.

Синтаксис

NTSTATUS IoCsqInitialize(
  [out] PIO_CSQ                       Csq,
  [in]  PIO_CSQ_INSERT_IRP            CsqInsertIrp,
  [in]  PIO_CSQ_REMOVE_IRP            CsqRemoveIrp,
  [in]  PIO_CSQ_PEEK_NEXT_IRP         CsqPeekNextIrp,
  [in]  PIO_CSQ_ACQUIRE_LOCK          CsqAcquireLock,
  [in]  PIO_CSQ_RELEASE_LOCK          CsqReleaseLock,
  [in]  PIO_CSQ_COMPLETE_CANCELED_IRP CsqCompleteCanceledIrp
);

Параметры

[out] Csq

Указатель на структуру IO_CSQ , инициализируемую IoCsqInitialize.

[in] CsqInsertIrp

Указатель на определяемую драйвером функцию CsqInsertIrp для безопасной для отмены очереди IRP драйвера.

[in] CsqRemoveIrp

Указатель на определяемую драйвером функцию CsqRemoveIrp для безопасной для отмены очереди IRP драйвера.

[in] CsqPeekNextIrp

Указатель на определяемую драйвером функцию CsqPeekNextIrp для безопасной для отмены очереди IRP драйвера.

[in] CsqAcquireLock

Указатель на определяемую драйвером функцию CsqAcquireLock для безопасной для отмены очереди IRP драйвера.

[in] CsqReleaseLock

Указатель на определяемую драйвером функцию CsqReleaseLock для безопасной для отмены очереди IRP драйвера.

[in] CsqCompleteCanceledIrp

Указатель на определяемую драйвером функцию CsqCompleteCanceledIrp для безопасной для отмены очереди IRP драйвера.

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

Эта подпрограмма возвращает STATUS_SUCCESS при успешном выполнении или соответствующий код ошибки NTSTATUS при сбое.

Комментарии

Подпрограмма IoCsqInitialize инициализирует структуру IO_CSQ , которая описывает безопасную для отмены очередь IRP драйвера. Драйверы также могут использовать IoCsqInitializeEx для создания очереди IRP с расширенными возможностями. Дополнительные сведения см. в разделе Отмена безопасных очередей IRP.

Обратите внимание, что подпрограммы IoCsqXxx используют элемент DriverContext[3] IRP для хранения сведений о контексте IRP. Драйверы, использующие эти подпрограммы для постановки в очередь IRP, должны оставить этот элемент неиспользуем.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows XP и более поздних версиях операционной системы Windows. Драйверы, которые также должны работать для Windows 2000 и Windows 98/Me, могут вместо этого ссылаться на Csq.lib, чтобы использовать подпрограмму.
Целевая платформа Универсальное
Верхняя часть wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

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

CsqAcquireLock

CsqCompleteCanceledIrp

CsqInsertIrp

CsqInsertIrpEx

CsqPeekNextIrp

CsqReleaseLock

CsqRemoveIrp

IO_CSQ

IoCsqInitializeEx

IoCsqInsertIrp

IoCsqInsertIrpEx

IoCsqRemoveIrp

IoCsqRemoveNextIrp