共用方式為


IOCTL_MOUNTDEV_QUERY_DEVICE_NAME IOCTL (mountmgr.h)

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

掛接管理員客戶端必須支援此 IOCTL。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

沒有。

輸入緩衝區長度

沒有。

輸出緩衝區

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

輸出緩衝區長度

Parameters.DeviceIoControl.OutputBufferLength 在 IRP 的 I/O 堆棧位置,表示輸出緩衝區的大小,以位元組為單位,輸出緩衝區的大小必須大於或等於 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