IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)
收到此 IOCTL 時,用戶端驅動程式必須提供磁碟區 (或目標) 名稱 (非) 裝置。 掛接管理員會使用用戶端傳回的 裝置名稱 作為符號鏈接的目標。 裝置名稱的範例是 “\Device\HarddiskVolume1”。
掛接管理員用戶端對此IOCTL的支援是必要的。
主要程序代碼
輸入緩衝區
無。
輸入緩衝區長度
無。
輸出緩衝區
掛接管理員用戶端會在 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) |