次の方法で共有


FltGetVolumeProperties 関数 (fltkernel.h)

FltGetVolumeProperties ルーチンは、指定されたボリュームのボリューム プロパティ情報を返します。

構文

NTSTATUS FLTAPI FltGetVolumeProperties(
  [in]  PFLT_VOLUME            Volume,
  [out] PFLT_VOLUME_PROPERTIES VolumeProperties,
        ULONG                  VolumePropertiesLength,
  [out] PULONG                 LengthReturned
);

パラメーター

[in] Volume

ボリュームの不透明なポインター。 このパラメーターは必須であり、NULL することはできません。

[out] VolumeProperties

要求されたボリューム プロパティ情報を受け取る呼び出し元によって割り当てられたバッファーへのポインター。 Length が入力時に 0 の場合、このパラメーターは無視されます。 それ以外の場合、このパラメーターは必須であり、NULL することはできません。

VolumePropertiesLength

VolumeProperties パラメーターが指すバッファーのサイズ (バイト単位)。 このパラメーターは省略可能で、0 にすることができます。 0 の場合、LengthReturned は、ボリュームのプロパティを保持するために必要なバッファーのサイズ (バイト単位) を受け取ります。 このパラメーターが 0 以外の場合は、少なくとも sizeof(FLT_VOLUME_PROPERTIES)の値である必要があります。

[out] LengthReturned

VolumeProperties で返される情報のサイズ (バイト単位)を受け取る呼び出し元によって割り当てられた変数へのポインター。 FltGetVolumeProperties がSTATUS_BUFFER_TOO_SMALLを返す場合、または入力時に Length が 0 の場合、このパラメーターはボリュームのプロパティを保持するために必要なバッファーのサイズ (バイト単位) を受け取ります。 このパラメーターは必須であり、NULL することはできません。

戻り値

FltGetVolumeProperties STATUS_SUCCESSまたは次のいずれかの適切な NTSTATUS 値を返します。

リターン コード 形容
STATUS_BUFFER_OVERFLOW
VolumeProperties パラメーターが指すバッファーは、FLT_VOLUME_PROPERTIES 構造体の固定部分を保持するのに十分な大きさですが、FileSystemDriverNameFileSystemDeviceName、または RealDeviceName メンバー 保持できません。 この場合、ボリューム情報の固定部分のみが、VolumeProperties パラメーターによって指されるバッファーに返されます。 LengthReturned パラメーターは、返されたデータの実際の長さをバイト単位で受け取ります。 これは警告コードです。
STATUS_BUFFER_TOO_SMALL
VolumeProperties パラメーターが指すバッファーは、ボリューム プロパティ情報を保持するのに十分な大きさではありません。 LengthReturned パラメーターは、必要なバッファー サイズを受け取ります。 この場合、ボリューム情報は返されません。 これはエラー コードです。

備考

FltGetVolumeProperties は、マウント プロセス中にシステムデッドロックのリスクなしに安全に照会できる情報のみを返します。 そのため、ミニフィルター ドライバーは、通常、マウント後のコールバック関数または InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) ルーチンからこのルーチンを呼び出して、特定のボリュームにアタッチするかどうかを判断します。

必要条件

要件 価値
ターゲット プラットフォーム 万国
ヘッダー fltkernel.h (Fltkernel.h を含む)
ライブラリ FltMgr.lib
DLL Fltmgr.sys
IRQL <= APC_LEVEL

関連項目

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK