IoVolumeDeviceToDosName 関数 (ntddk.h)

IoVolumeDeviceToDosName ルーチンは、ファイル システム ボリュームを表す指定されたデバイス オブジェクトの MS-DOS パスを返します。

構文

NTSTATUS IoVolumeDeviceToDosName(
  [in]  PVOID           VolumeDeviceObject,
  [out] PUNICODE_STRING DosName
);

パラメーター

[in] VolumeDeviceObject

ストレージ クラス ドライバーによって作成されたボリューム デバイス オブジェクトを表すデバイス オブジェクトへのポインター。

[out] DosName

呼び出し元によって割り当てられた UNICODE_STRING 構造体へのポインター。 呼び出しが成功した場合、 IoVolumeDeviceToDosName は、この構造体の LengthMaximumLengthおよび 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

こちらもご覧ください

ExFreePool

KeAreAllApcsDisabled

UNICODE_STRING