Diskpart drive letter asignments
Posted 16 February 2012 - 06:45 PM
Diskpart -> Select Volume # -> Assign sequence uses Windows internal routing to assign 1st available drive letter to a volume. So, its always "recognized" by WE in this case. Just a suggestion for your next ImDisk build.
Posted 16 February 2012 - 07:34 PM
Diskpart uses Volume Mount Manager to select which drive letter to use and to actually create it (the symbolic link object that actually represents the drive letter) and to send notifications to user mode processes. This causes Windows Explorer to pick up the notification and update the internal device list cache it maintains in the MountPoints2 registry key.
ImDisk does not interact with Volume Mount Manager but creates drive letter directly by creating the symbolic link for it. After that it sends notifications to user mode processes in the session where the device creation was initiated. This causes Windows Explorer to pick up the notification and update itself in the same manner as for drive letters created by Volume Mount Manager.
Although the drive letter paths are immediately available to applications in both cases, Windows Explorer will not accept it until it has updated it's own cached device list. This can cause problems like the error message posted earlier in another thread. Therefore I have added some code to actually wait for the drive letter to appear in Explorer's cached device list.
(Btw, post moved to a new topic. Please, let the News thread be actually a News thread about new releases and what is new and changed, and not a discussion thread. Please post comments and suggestions in new threads, preferrably quoting the news you would like to comment.)
Posted 16 February 2012 - 07:47 PM
I used similar algorithm in VHD_Mount first, and its more controllable in terms of selecting a certain letter pattern, but then decided to settle on Assign command to unify the code.
Posted 16 February 2012 - 07:54 PM
My implementation of ImDiskFindFreeDriveLetter calls GetLogicalDrives and then parses the return value beginning at bit 2 (C:) and then loops throughout and returns drive letter corresponding to first found zero bit, which indicates first free drive letter beyond C:.
1 user(s) are reading this topic
0 members, 1 guests, 0 anonymous users