次の方法で共有


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) ルーチンからこのルーチンを呼び出して、特定のボリュームにアタッチするかどうかを判断します。

要件

要件
対象プラットフォーム ユニバーサル
Header fltkernel.h (Fltkernel.h を含む)
Library FltMgr.lib
[DLL] Fltmgr.sys
IRQL <= APC_LEVEL

こちらもご覧ください

FLT_VOLUME_PROPERTIES

PFLT_INSTANCE_SETUP_CALLBACK