次の方法で共有


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

ドライバーのキャンセル セーフ IRP キューの CsqInsertIrp 関数 ドライバー定義へのポインター。

[in] CsqRemoveIrp

ドライバーのキャンセル セーフ IRP キューの CsqRemoveIrp 関数 ドライバー定義へのポインター。

[in] CsqPeekNextIrp

ドライバーのキャンセル セーフ IRP キューの CsqPeekNextIrp 関数 ドライバー定義へのポインター。

[in] CsqAcquireLock

ドライバーのキャンセル セーフ IRP キューの CsqAcquireLock 関数 ドライバー定義へのポインター。

[in] CsqReleaseLock

ドライバーのキャンセル セーフ IRP キューの CsqReleaseLock 関数 ドライバー定義へのポインター。

[in] CsqCompleteCanceledIrp

ドライバーのキャンセル セーフ IRP キューの CsqCompleteCanceledIrp 関数 ドライバー定義へのポインター。

戻り値

このルーチンは、成功した場合は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