Функция IoCsqInitializeEx (wdm.h)
Подпрограмма IoCsqInitializeEx инициализирует таблицу диспетчеризации для очереди IRP с безопасной отменой.
Синтаксис
NTSTATUS IoCsqInitializeEx(
[out] PIO_CSQ Csq,
[in] PIO_CSQ_INSERT_IRP_EX 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 для инициализации IoCsqInitializeEx.
[in] CsqInsertIrp
Указатель на определяемую драйвером функцию CsqInsertIrpEx для безопасной очереди IRP драйвера.
[in] CsqRemoveIrp
Указатель на определяемую драйвером функцию CsqRemoveIrp для очереди отмены IRP драйвера.
[in] CsqPeekNextIrp
Указатель на определяемую драйвером функцию CsqPeekNextIrp для очереди отмены IRP драйвера.
[in] CsqAcquireLock
Указатель на определяемую драйвером функцию CsqAcquireLock для очереди отмены IRP драйвера.
[in] CsqReleaseLock
Указатель на определяемую драйвером функцию CsqReleaseLock для безопасной для отмены очереди IRP драйвера.
[in] CsqCompleteCanceledIrp
Указатель на определяемую драйвером функцию CsqCompleteCanceledIrp для очереди отмены IRP драйвера.
Возвращаемое значение
IoCsqInitializeEx возвращает STATUS_SUCCESS при успешном выполнении или соответствующий код ошибки при сбое.
Комментарии
Подпрограммы IoCsqInitialize и IoCsqInitializeEx инициализируют IO_CSQ структуру, описывающую безопасную очередь IRP драйвера. IoCsqInitializeEx можно использовать для указания очереди IRP с расширенными возможностями вместо очереди, указанной ioCsqInitialize:
- Драйвер реализует подпрограмму CsqInsertIrpEx , а не подпрограмму CsqInsertIrp . CsqInsertIrpEx принимает дополнительный параметр InsertContext. Когда драйвер вызывает IoCsqInsertIrpEx для вставки IRP, он указывает значение, передаваемое как InsertContext.
- IoCsqInsertIrpEx возвращает возвращаемое значение CsqInsertIrpEx. Драйверы могут использовать возвращаемое значение, чтобы указать, была ли операция вставки успешной или неудачной.
Обратите внимание, что подпрограммы IoCsqXxx используют элемент DriverContext[3] IRP для хранения сведений контекста IRP. Драйверы, использующие эти подпрограммы для постановки в очередь irP, должны оставить этот элемент неиспользуем.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Доступно в Windows Server 2003 и более поздних версиях операционной системы Windows. Подпрограмма также доступна в библиотеке Csq.lib, которая поставляется вместе с комплектом драйверов Windows (WDK) и пакетом средств разработки драйверов (DDK) для Windows Server 2003. Драйверы, которые также должны работать в Windows XP, Windows 2000 и Windows 98/Me, могут вместо этого связаться с Csq.lib для использования подпрограммы. |
Целевая платформа | Универсальное |
Верхняя часть | wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h) |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Любой уровень |