共用方式為


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 佇列。 如需詳細資訊,請參閱 Cancel-Safe IRP 佇列。

請注意,IoCsqXxx 例程會使用 IRP 的 DriverContext[3] 成員來保存 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