ioVolumeDeviceToDosName 函数 (ntddk.h)

IoVolumeDeviceToDosName 例程返回表示文件系统卷的指定设备对象的 MS-DOS 路径。

语法

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

参数

[in] VolumeDeviceObject

指向表示存储类驱动程序创建的卷设备对象的设备对象的指针。

[out] DosName

指向调用方分配 UNICODE_STRING 结构的指针。 如果调用成功, IoVolumeDeviceToDosName 将设置此结构的 LengthMaximumLengthBuffer 成员的值。 退出时, 缓冲区 成员指向包含 VolumeDeviceObject 指定的卷设备对象的 MS-DOS 路径的宽字符、null 终止的字符串。 有关详细信息,请参阅“备注”。

返回值

如果调用成功,IoVolumeDeviceToDosName 将返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。

返回值 说明
STATUS_INVALID_PARAMETER
由于调用方传递的参数值无效,例程失败。
STATUS_INSUFFICIENT_RESOURCES
例程未能分配此操作所需的资源。

备注

IoVolumeDeviceToDosName 分配由 DosName 参数指向的UNICODE_STRING结构的 Buffer 成员指向的字符串缓冲区。 不再需要此缓冲区后,此例程的调用方应调用 ExFreePool 例程来释放缓冲区。

从 Windows Vista 开始,必须确保在调用此例程之前 不会 禁用 APC。 KeAreAllApcsDisabled 例程可用于验证未禁用 APC。

要求

   
最低受支持的客户端 从 Windows XP 开始可用。 在基于Windows NT的操作系统的早期版本中必须运行的驱动程序可以使用 RtlVolumeDeviceToDosName,其行为方式相同。
目标平台 通用
标头 ntddk.h (包括 Ntddk.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

ExFreePool

KeAreAllApcsDisabled

UNICODE_STRING