IoStartPacket 関数 (ntifs.h)
IoStartPacket ルーチンは、指定された IRP を使用してドライバーの StartIo ルーチンを呼び出すか、デバイスが既にビジー状態の場合は、指定されたデバイス オブジェクトに関連付けられているデバイス キューに IRP を挿入します。
構文
void IoStartPacket(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in, optional] PULONG Key,
[in, optional] PDRIVER_CANCEL CancelFunction
);
パラメーター
[in] DeviceObject
IRP のターゲット デバイス オブジェクトへのポインター。
[in] Irp
処理する IRP へのポインター。
[in, optional] Key
デバイス キューにパケットを挿入する場所を決定する値へのポインター。 これが 0 の場合、パケットはデバイス キューの末尾に挿入されます。
[in, optional] CancelFunction
ドライバーが指定した キャンセル ルーチンのエントリ ポイントを指定します。
戻り値
何一つ
備考
ドライバーがターゲット デバイス オブジェクトの要求の処理中に既にビジー状態の場合、パケットはデバイス キューに格納されます。 それ以外の場合、このルーチンは、ドライバーの StartIo ルーチンを指定した IRP を呼び出します。
NULL 以外の CancelFunction ポインターが指定されている場合は、IRP で設定されるため、ドライバーの キャンセル ルーチンは、IRP が完了前に取り消された場合に呼び出されます。
StartIo ルーチンを持たないドライバーは、IoStartPacket 呼び出すことができません。
IoStartPacket の呼び出し元は、IRQL <= DISPATCH_LEVEL で実行されている必要があります。 通常、このルーチンは、IRQL = PASSIVE_LEVEL のデバイス ドライバーのディスパッチ ルーチンから呼び出されます。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | ntifs.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (「解説」セクションを参照) |