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