次の方法で共有


IoCopyCurrentIrpStackLocationToNext 関数 (wdm.h)

IoCopyCurrentIrpStackLocationToNext ルーチンは、現在の I/O スタックの場所から次の下位ドライバーのスタックの場所に IRP スタック パラメーターをコピーします。

構文

void IoCopyCurrentIrpStackLocationToNext(
  [in, out] PIRP Irp
);

パラメーター

[in, out] Irp

IRP へのポインター。

戻り値

なし

解説

ドライバーは IoCopyCurrentIrpStackLocationToNext を呼び出して、IRP パラメーターをスタックの場所から次の下位のドライバーのスタックの場所にコピーします。

このルーチンを呼び出した後、ドライバーは通常、 IoSetCompletionRoutine を使用して I/O 完了ルーチンを設定してから、次の下位ドライバーに IoCallDriver を渡します。 IRP パラメーターを渡すが、I/O 完了ルーチンを設定しないドライバーは、このルーチンの代わりに IoSkipCurrentIrpStackLocation を呼び出す必要があります。

ドライバーで IoSkipCurrentIrpStackLocation を呼び出す場合は、そのドライバーに関連して下位のドライバーやシステムの動作が意図せず影響を受けるような方法で IO_STACK_LOCATION 構造体を変更しないように注意してください。 特に、ドライバーは 、IO_STACK_LOCATION 構造体の Parameters 共用体を変更しないでください。 また、IoMarkIrpPending ルーチンを呼び出さないでください。

要件

要件
サポートされている最小のクライアント Windows 2000 以降で使用できます。
対象プラットフォーム デスクトップ
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
IRQL <=DISPATCH_LEVEL

こちらもご覧ください

IO_STACK_LOCATION

IoCallDriver

IoMarkIrpPending

IoSetCompletionRoutine

IoSkipCurrentIrpStackLocation