IoVolumeDeviceToDosName 例程返回表示文件系统卷的指定设备对象的 MS-DOS 路径。
语法
NTSTATUS IoVolumeDeviceToDosName(
[in] PVOID VolumeDeviceObject,
[out] PUNICODE_STRING DosName
);
参数
[in] VolumeDeviceObject
指向表示存储类驱动程序创建的卷设备对象的设备对象的指针。
[out] DosName
指向调用方分配 UNICODE_STRING 结构的指针。 如果调用成功,IoVolumeDeviceToDosName 设置 Length、MaximumLength的值,以及 Buffer 此结构的成员。 退出时,Buffer 成员指向宽字符、以 null 结尾的字符串,其中包含由 VolumeDeviceObject指定的卷设备对象的 MS-DOS 路径。 有关详细信息,请参阅“备注”。
返回值
IoVolumeDeviceToDosName 如果调用成功,则返回STATUS_SUCCESS。 可能的错误返回值包括以下状态代码。
| 返回值 | 描述 |
|---|---|
| STATUS_INVALID_PARAMETER | 由于调用方传递的参数值无效,例程失败。 |
| STATUS_INSUFFICIENT_RESOURCES | 例程未能分配此作所需的资源。 |
言论
IoVolumeDeviceToDosName 分配 DosName 参数指向的 UNICODE_STRING 结构的 Buffer 成员指向的字符串缓冲区。 不再需要此缓冲区后,此例程的调用方应调用 ExFreePool 例程来释放缓冲区。
从 Windows Vista 开始,在调用此例程之前,必须确保未禁用 APC。 KeAreAllApcsDisabled 例程可用于验证未禁用 APC。
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 普遍 |
| 标头 | ntddk.h (包括 Ntddk.h) |
| 库 | NtosKrnl.lib |
| DLL | NtosKrnl.exe |
| IRQL | PASSIVE_LEVEL |