IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

收到此 IOCTL 時,用戶端驅動程式必須提供磁碟區 (或目標) 名稱 (非) 裝置。 掛接管理員會使用用戶端傳回的 裝置名稱 作為符號鏈接的目標。 裝置名稱的範例是 “\Device\HarddiskVolume1”。

掛接管理員用戶端對此IOCTL的支援是必要的。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

無。

輸入緩衝區長度

無。

輸出緩衝區

掛接管理員用戶端會在 Irp-AssociatedIrp.SystemBuffer> 緩衝區開頭傳回類型MOUNTDEV_NAME的可變長度結構。 裝置名稱必須插入這個結構的 Name 成員所指向的位址。

輸出緩衝區長度

IRP I/O 堆疊位置中的 Parameters.DeviceIoControl.OutputBufferLength 表示輸出緩衝區的大小,其大小必須大於或等於 sizeof(MOUNTDEV_NAME)

狀態區塊

[資訊] 字段會設定為 FIELD_OFFSET (MOUNTDEV_NAME、Name) + output-NameLength> 或 output-NameLength> + sizeof (USHORT) ,其中輸出會指向 Irp-AssociatedIrp.SystemBuffer> 的緩衝區。

如果作業成功,掛接管理員客戶端必須將 [資訊 ] 欄位設定為包含裝置名稱的 NULL 終止字串長度,並將 [ 狀態 ] 字段設定為STATUS_SUCCESS。

如果輸出緩衝區太小而無法儲存裝置名稱,掛接管理員客戶端必須將 [資訊 ] 欄位 sizeof(MOUNTDEV_NAME) 設定為 ,並將 [ 狀態 ] 字段設定為 [STATUS_BUFFER_OVERFLOW]。 此外,掛接管理員用戶端會填入 MOUNTDEV_NAME 結構的 NameLength 成員。

備註

最佳做法是,實作者不得進行線程同步處理,且不得進行封鎖和/或進程間通訊 (IPC) 函式呼叫。

如需詳細資訊,請參閱 在記憶體類別驅動程式中支援掛接管理員要求

規格需求

需求
標頭 mountmgr.h (包括 Mountmgr.h)

另請參閱

MOUNTDEV_NAME