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 値を返します。
リターン コード | 説明 |
---|---|
|
VolumeProperties パラメーターが指すバッファーは、FLT_VOLUME_PROPERTIES構造体の固定部分を保持するのに十分な大きさですが、FileSystemDriverName、FileSystemDeviceName、または RealDeviceName メンバーは保持できません。 この場合、 VolumeProperties パラメーターによって指されるバッファーには、ボリューム情報の固定部分のみが返されます。 LengthReturned パラメーターは、返されるデータの実際の長さをバイト単位で受け取ります。 これは警告コードです。 |
|
VolumeProperties パラメーターが指すバッファーは、ボリューム プロパティ情報を保持するのに十分な大きさではありません。 LengthReturned パラメーターは、必要なバッファー サイズを受け取ります。 この場合、ボリューム情報は返されません。 これはエラー コードです。 |
注釈
FltGetVolumeProperties は、マウント プロセス中に安全に照会できる情報のみを返し、システムのデッドロックのリスクはありません。 したがって、ミニフィルター ドライバーは、通常、マウント後のコールバック関数または InstanceSetupCallback (PFLT_INSTANCE_SETUP_CALLBACK) ルーチンからこのルーチンを呼び出して、特定のボリュームにアタッチするかどうかを判断します。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | fltkernel.h (Fltkernel.h を含む) |
Library | FltMgr.lib |
[DLL] | Fltmgr.sys |
IRQL | <= APC_LEVEL |