FltGetVolumeGuidName 関数 (fltkernel.h)
FltGetVolumeGuidName
構文
NTSTATUS FLTAPI FltGetVolumeGuidName(
[in] PFLT_VOLUME Volume,
[in/out, optional] PUNICODE_STRING VolumeGuidName,
[out, optional] PULONG BufferSizeNeeded
);
パラメーター
[in] Volume
ボリュームの不透明なポインター。 ローカル ファイル システム ボリュームである必要があります。 このパラメーターは必須であり、NULL
[in/out, optional] VolumeGuidName
STATUS_SUCCESSが返されたときにボリュームの GUID 名を受け取る呼び出し元によって割り当てられた UNICODE_STRING 構造体へのポインター。 VolumeGuidName->Buffer のプールも呼び出し元によって割り当てられることに注意してください。
[out, optional] BufferSizeNeeded
要求されたボリューム GUID 名のサイズ (バイト単位) を受け取る呼び出し元によって割り当てられた変数へのポインター。 このパラメーターは省略可能であり、NULL
戻り値
FltGetVolumeGuidName
リターン コード | 形容 |
---|---|
STATUS_BUFFER_TOO_SMALL | VolumeGuidName |
STATUS_INSUFFICIENT_RESOURCES | FltGetVolumeGuidName |
STATUS_INVALID_DEVICE_REQUEST | ボリューム パラメーターは、ネットワーク ボリュームのハンドルです。 これはエラー コードです。 |
STATUS_FLT_VOLUME_NOT_FOUND | 一致するボリュームが見つかりませんでした。 これはエラー コードです。 |
備考
返されるボリューム GUID 名は、次の形式で表されます。
\??\Volume{GUID}
ここで GUID は、ボリュームを識別するグローバル一意識別子です。 この形式は、マウント マネージャーで使用される形式と同じですが、「記憶域クラス ドライバーでのマウント マネージャー要求のサポート」で説明されています。
BufferSizeNeeded
- 最初の呼び出しで、VolumeGuidName
NULL を し、BufferSizeNeeded を非 NULL にします。 FltGetVolumeGuidName は、ボリューム名 GUID に必要なバイト数 BufferSizeNeeded に格納し、STATUS_BUFFER_TOO_SMALLを返します。 - 2 つ目の呼び出しで、VolumeGuidName
を、最初の呼び出しで返される BufferSizeNeeded 値のサイズを指すように設定します。
FltGetVolumeGuidName
Windows Vista 以降では、すべてのマウント処理が完了した後、新しいボリュームの最初の I/O 操作でコールバックが呼び出されるため、ミニフィルター ドライバーは、
Windows Vista より前の Windows オペレーティング システムでは、マウント マネージャーがロックを保持しているときにファイル I/O 操作を発行する可能性があるため、
ボリューム GUID はボリューム オブジェクト ID と同じではないことに注意してください。
ボリュームのボリューム オブジェクト ID を取得するには、ZwQueryVolumeInformationFile
FltGetVolumeGuidName
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の |
万国 |
ヘッダー | fltkernel.h (Fltkernel.h を含む) |
ライブラリ | FltMgr.lib |
DLL | Fltmgr.sys |
IRQL | PASSIVE_LEVEL |