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 |