次の方法で共有


FltQueryInformationFile 関数 (fltkernel.h)

FltQueryInformationFile は、特定のファイルの情報を取得します。

構文

NTSTATUS FLTAPI FltQueryInformationFile(
  [in]            PFLT_INSTANCE          Instance,
  [in]            PFILE_OBJECT           FileObject,
  [out]           PVOID                  FileInformation,
  [in]            ULONG                  Length,
  [in]            FILE_INFORMATION_CLASS FileInformationClass,
  [out, optional] PULONG                 LengthReturned
);

パラメーター

[in] Instance

呼び出し元の不透明なインスタンス ポインター。 このパラメーターは必須であり、NULL することはできません。

[in] FileObject

ファイルのファイル オブジェクト ポインター。 このパラメーターは必須であり、NULL することはできません。

[out] FileInformation

ファイルに関する情報を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 FileInformationClass パラメーターは、情報の種類を指定します。 このパラメーターは必須であり、NULL することはできません。

[in] Length

FileInformation バッファーのサイズ (バイト単位)。

[in] FileInformationClass

FileInformation バッファーで返されるファイル情報の種類を指定する FILE_INFORMATION_CLASS 値。

[out, optional] LengthReturned

FileInformation バッファーで返される情報のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、NULL できます。

戻り値

FltQueryInformationFile は、STATUS_SUCCESSまたは次のような適切な NTSTATUS 値を返します。

リターン コード 形容
STATUS_VOLUME_DISMOUNTED
ファイルは、現在マウントされていないボリューム上に存在します。 これはエラー コードです。

備考

ミニフィルター ドライバーは、FltQueryInformationFile を呼び出して、FileObjectによって識別されるファイルの情報を取得します。 ファイルは現在開いている必要があります。

FltQueryInformationFile は、特定のファイル システムでサポートされていないFILE_XXX_INFORMATION 構造体のメンバーで 0 を返します。

FltQueryInformationFile の呼び出し元は、IRQL = PASSIVE_LEVEL で実行され、有効になっている APCs を使用してする必要があります。

注: NULL 以外の最上位レベルの IRP 値を使用してこのルーチンを呼び出さないでください。これにより、システムのデッドロックが発生する可能性があります。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL PASSIVE_LEVEL (「解説」セクションを参照)

関連項目

FILE_INFORMATION_CLASS

FltQueryVolumeInformationFile

FltSetInformationFile

ZwQueryInformationFile