IoVolumeDeviceToDosName 関数 (ntddk.h)
IoVolumeDeviceToDosName ルーチンは、ファイル システム ボリュームを表す指定されたデバイス オブジェクトの MS-DOS パスを返します。
構文
NTSTATUS IoVolumeDeviceToDosName(
[in] PVOID VolumeDeviceObject,
[out] PUNICODE_STRING DosName
);
パラメーター
[in] VolumeDeviceObject
ストレージ クラス ドライバーによって作成されたボリューム デバイス オブジェクトを表すデバイス オブジェクトへのポインター。
[out] DosName
呼び出し元によって割り当てられた UNICODE_STRING 構造体へのポインター。 呼び出しが成功した場合、 IoVolumeDeviceToDosName は、この構造体の Length、 MaximumLength、 および Buffer メンバーの値を設定します。 終了時に、 Buffer メンバーは、 VolumeDeviceObject で指定されたボリューム デバイス オブジェクトの MS-DOS パスを含むワイド文字の null で終わる文字列を指します。 詳細については、「解説」を参照してください。
戻り値
呼び出しが成功した場合、IoVolumeDeviceToDosName はSTATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次の状態コードです。
戻り値 | 説明 |
---|---|
STATUS_INVALID_PARAMETER | 呼び出し元によって渡されたパラメーター値が無効であるため、ルーチンが失敗しました。 |
STATUS_INSUFFICIENT_RESOURCES | ルーチンは、この操作に必要なリソースを割り当てませんでした。 |
注釈
IoVolumeDeviceToDosName は、DosName パラメーターが指すUNICODE_STRING構造体の Buffer メンバーが指す文字列バッファーを割り当てます。 このバッファーが不要になった後、このルーチンの呼び出し元は 、ExFreePool ルーチンを呼び出してバッファーを解放する必要があります。
Windows Vista 以降では、このルーチンを呼び出す前に、APC が無効にされていないことを確認する必要があります。 KeAreAllApcsDisabled ルーチンを使用して、APC が無効にされていないことを確認できます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntddk.h (Ntddk.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |