FsRtlKernelFsControlFile 関数 (ntifs.h)
FsRtlKernelFsControlFile 関数は、明示的なFSCTL_XXX IRP をビルドし、スタックに送信し、同期的に完了するまで待機し、結果を返します。 この関数を使用すると、呼び出し元は、ハンドルではなく FileObject を
構文
NTSTATUS FsRtlKernelFsControlFile(
[in] PFILE_OBJECT FileObject,
[in] ULONG FsControlCode,
[in] PVOID InputBuffer,
[in] ULONG InputBufferLength,
[out] PVOID OutputBuffer,
[out] ULONG OutputBufferLength,
[out] PULONG RetOutputBufferSize
);
パラメーター
[in] FileObject
操作を送信する FILE_OBJECT へのポインター。
[in] FsControlCode
FSCTL_XXX実行するファイル システム制御操作を示すコードです。このパラメーターの値は、
[in] InputBuffer
ターゲット ドライバーに渡されるデバイス固有の情報を含む、呼び出し元によって割り当てられた入力バッファーへのポインター。 FsControlCode が入力データを必要としない操作を指定する場合、このポインターは省略可能であり、NULL にすることができます。 このバッファーは戻り時に変更される可能性があり、呼び出し元はこれに適応する必要があることに注意してください。 これは、出力データを保持するためにこのバッファーが使用される可能性があるためです。
[in] InputBufferLength
InputBuffer の長さ (バイト単位)。
[out] OutputBuffer
ターゲット ドライバーから情報が返される呼び出し元によって割り当てられた出力バッファーへのポインター。 FsControlCode が出力データを生成しない操作を指定する場合、このポインターは省略可能であり、NULL にすることができます。
[out] OutputBufferLength
OutputBuffer の長さ (バイト単位)。
[out] RetOutputBufferSize
出力バッファーに実際に書き込まれた (返される) バイト数を受け取ります。
戻り値
FsRtlKernelFsControlFile
価値 | 意味 |
---|---|
STATUS_INSUFFICIENT_RESOURCES | プール割り当てエラーが発生しました。 |
STATUS_INVALID_PARAMETER | 無効なパラメーターが指定されました (たとえば、無効な FileObject)。 |
備考
FsRtlKernelFsControlFile IRP_MN_KERNEL_CALLマイナー コードを設定します。これにより、特定の操作に対するボリュームの管理特権を必要とせずに操作を実行できます。
この関数は、渡されるすべてのバッファーがカーネル モード バッファーであることを前提としています。
必要条件
要件 | 価値 |
---|---|
ヘッダー | ntifs.h |