IOCTL_MOUNTMGR_NEXT_DRIVE_LETTER IOCTL (mountmgr.h)

此 IOCTL 會檢查指定的磁碟區是否有驅動器號。 如果磁碟區已經有驅動器號,或磁碟區有特殊的掛接管理員資料庫專案,表示它不需要驅動器號,則此例程會傳回目前的驅動器號,如果有一個) 且不執行任何動作,則此例程會傳回目前的驅動器號 (。 如果指定的磁碟區沒有驅動器號,而且沒有特殊的掛接管理員資料庫專案,表示不需要驅動器號,則會將下一個可用的驅動器號指派給磁碟區。 如果磁碟區的非持續性裝置名稱以 「\Device\Floppy」 開頭,掛接管理員會檢查是否有以字母 「A」 開頭的可用驅動器號。如果磁碟區名稱以 「\Device\CdRom」 開頭,掛接管理員會檢查是否有以驅動器號 “D” 開頭的可用驅動器號。在其他所有情況下,掛接管理員會以驅動器號 「C」 開頭。

主要程序代碼

IRP_MJ_DEVICE_CONTROL

輸入緩衝區

掛接管理員用戶端會在 Irp-AssociatedIrp.SystemBuffer> 緩衝區開頭初始化MOUNTMGR_DRIVE_LETTER_TARGET結構。 客戶端必須在此結構的 DeviceName[] 成員指向的位址插入目標磁碟區的名稱。 目標磁碟區名稱是與磁碟區相關聯的非持續性裝置物件名稱 (,例如 “\Device\HarddiskVolume1”) 。

輸入緩衝區長度

IRP I/O 堆棧位置中的 Parameters.DeviceIoControl.InputBufferLength 表示輸入緩衝區的大小,以位元組為單位,必須大於或等於 sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)

輸出緩衝區

掛接管理員會插入目前的驅動器號或新指派的驅動器號, (請參閱 Irp-AssociatedIrp.SystemBuffer> 緩衝區開頭之MOUNTMGR_DRIVE_LETTER_INFORMATION結構中的先前討論) 。

輸出緩衝區長度

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

輸入/輸出緩衝區

N/A

輸入/輸出緩衝區長度

N/A

狀態區塊

如果作業成功, [狀態] 字段會設定為 [STATUS_SUCCESS]。

如果 InputBufferLength 小於 sizeof(MOUNTMGR_DRIVE_LETTER_TARGET)OutputBufferLength 小於 sizeof(MOUNTMGR_DRIVE_LETTER_INFORMATION)則 Status 字段會設定為 STATUS_INVALID_PARAMETER。

備註

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

規格需求

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

另請參閱

MOUNTMGR_DRIVE_LETTER_TARGET