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
要由IoCsqInitialize初始化之IO_CSQ結構的指標。
[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 例程會初始化描述驅動程式取消安全 IRP 佇列的IO_CSQ結構。 驅動程式也可以使用 IoCsqInitializeEx 來建立具有擴充功能的 IRP 佇列。 如需詳細資訊,請參閱 取消安全的 IRP 佇列。
請注意, IoCsqXxx 例程會使用 IRP 的 DriverContext[3] 成員來保存 IRP 內容資訊。 使用這些例程來將 IRP 排入佇列的驅動程式,必須讓該成員保持未使用狀態。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows XP 和更新版本的 Windows 作業系統。 也必須適用於 Windows 2000 和 Windows 98/Me 的驅動程式可以改為連結至 Csq.lib 以使用例程。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |