将驱动器号添加到 LUN

[从Windows 8和Windows Server 2012开始,虚拟磁盘服务 COM 接口由 Windows 存储管理 API 取代。]

可以直接将驱动器号分配给卷对象;但是,如果磁盘是 LUN 对象,则还需要执行一些其他步骤。

将驱动器号分配给 LUN 对象

  1. 如有必要,将 LUN 取消屏蔽到本地主机。

    注意

    不能对取消屏蔽到当前 VDS 会话中另一台计算机的 LUN 对象执行软件管理操作。

     

  2. 在运行硬件提供程序的计算机上调用 IVdsService::Reenumerate 方法。

  3. 将 LUN 初始化为基本磁盘,如下所示:

    1. 在 LUN 对象上调用 IUnknown::QueryInterface 方法来查询 IVdsDisk 接口。
    2. 调用 IVdsSwProvider::CreatePack 方法创建基本包。
    3. 调用 IVdsPack::AddDisk 方法将磁盘添加到新包。
  4. 在磁盘上创建分区并获取卷对象,如下所示:

    1. 调用 IVdsCreatePartitionEx::CreatePartitionEx 方法创建分区。
    2. CreatePartitionEx 返回的异步对象调用 IVdsAsync::Wait 方法,以从VDS_ASYNC_OUTPUT结构获取卷标识符。
    3. 将卷标识符作为参数传递给 IVdsService::GetObject 方法以获取卷对象指针。
  5. 调用 IVdsVolumeMF::AddAccessPath 方法来分配驱动器号。

注意

IVdsAdvancedDisk::AssignDriveLetter 方法将驱动器号分配给没有关联卷的分区,例如 OEM 或 ESP 分区。 不能使用它将驱动器号分配给 LUN 对象。

 

使用 VDS

IVdsService::Reenumerate

IVdsDisk

IVdsSwProvider::CreatePack

IVdsPack::AddDisk

IVdsCreatePartitionEx::CreatePartitionEx

IVdsAsync::Wait

VDS_ASYNC_OUTPUT

IVdsVolumeMF::AddAccessPath

IVdsAdvancedDisk::AssignDriveLetter