ZwFsControlFile 関数 (ntifs.h)
ZwFsControlFile ルーチンは、コントロール コードを指定したファイル システムまたはファイル システム フィルター ドライバーに直接送信し、対応するドライバーが指定したアクションを実行します。
構文
NTSYSAPI NTSTATUS ZwFsControlFile(
[in] HANDLE FileHandle,
[in, optional] HANDLE Event,
[in, optional] PIO_APC_ROUTINE ApcRoutine,
[in, optional] PVOID ApcContext,
[out] PIO_STATUS_BLOCK IoStatusBlock,
[in] ULONG FsControlCode,
[in, optional] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out, optional] PVOID OutputBuffer,
[in] ULONG OutputBufferLength
);
パラメーター
[in] FileHandle
ZwCreateFile
[in, optional] Event
呼び出し元によって作成されたイベントのハンドル。 このパラメーターを指定すると、要求された操作が完了し、指定されたイベントが Signaled 状態に設定されるまで、呼び出し元は待機状態になります。 このパラメーターは省略可能であり、NULL
[in, optional] ApcRoutine
要求された操作が完了したときに呼び出される呼び出し元が指定した APC ルーチンのアドレス。 このパラメーターは省略可能であり、NULL
[in, optional] ApcContext
呼び出し元によって決定されたコンテキスト領域へのポインター。 このパラメーター値は、呼び出し元が APC を提供する場合は APC コンテキストとして使用され、I/O 完了オブジェクトがファイル オブジェクトに関連付けられている場合は完了コンテキストとして使用されます。 操作が完了すると、APC コンテキストが指定されている場合は APC に渡されるか、I/O マネージャーが関連付けられている I/O 完了オブジェクトに投稿する完了メッセージの一部として完了コンテキストが含まれます。
このパラメーターは省略可能であり、NULL
[out] IoStatusBlock
最終的な完了状態と操作に関する情報を受け取るIO_STATUS_BLOCK構造体へのポインター。 データを返す呼び出しが成功した場合、OutputBuffer に書き込まれたバイト数は、この構造体の Information メンバーに返されます。
[in] FsControlCode
FSCTL_
[in, optional] InputBuffer
ターゲット ドライバーに渡されるデバイス固有の情報を含む、呼び出し元によって割り当てられた入力バッファーへのポインター。
[in] InputBufferLength
InputBufferのバッファーのサイズ (バイト単位)。 InputBuffer
[out, optional] OutputBuffer
ターゲット ドライバーから情報が返される呼び出し元によって割り当てられた出力バッファーへのポインター。
[in] OutputBufferLength
OutputBufferのバッファーのサイズ (バイト単位)。 OutputBuffer
戻り値
ZwFsControlFile
備考
ZwFsControlFile は、入力データと出力データの一貫性のあるビューをシステムおよびカーネル モード ドライバーに提供しながら、通信インターフェイスを指定するドライバーに依存するメソッドをアプリケーションと基になるドライバーに提供します。
呼び出し元が非同期 I/O 用にファイルを開いた場合 (XXX FILE_SYNCHRONOUS_ 作成/開くオプションがどちらも設定されていません)、指定されたイベントがある場合は、デバイス制御操作の完了時にシグナル状態に設定されます。 それ以外の場合は、FileHandle で指定
現在、カーネル モード ドライバーについては、次の FSCTL コードが記載されています。
FSCTL_OPBATCH_ACK_CLOSE_PENDING
FSCTL_OPLOCK_BREAK_ACKNOWLEDGE
システム定義FSCTL_
システム定義IOCTL_
ミニフィルターでは、ZwFsControlFileではなく、FltFsControlFile
ZwFsControlFile の呼び出し元は、IRQL = PASSIVE_LEVEL で実行され、特殊なカーネル API が有効になっている 必要があります。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows 2000。 |
ターゲット プラットフォーム の |
万国 |
ヘッダー | ntifs.h (Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (「解説」セクションを参照) |
DDI コンプライアンス規則 を |
HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |
関連項目
FltFsControlFile の
IoGetFunctionCodeFromCtlCode の
IoIsOperationSynchronous の