Re: RAMDisk and harddisk - Revisited

From: Slobodan Brcin \(eMVP\) (sbrcin_at_ptt.yu)
Date: 08/02/04


Date: Mon, 2 Aug 2004 23:21:10 +0200

Hi Brian,

The best problem description I have seen so far. (But it is too long and hard to respond to it)

Specific Observations:
2,3) It suggest that in 2 your device hardware ID is not seen by PnP manager for some unknown reason. (If you compare it with info
form 3 you will see that no hardware ID is seen).

Specific Questions:
1) Yes. Absolutely.
2) I have no idea, but your constatation that driver load fails is not accurate in some amount based on info you gave us. Since
there is not even an attempt to load driver. Error is same as in your working case.
3) If everything is ok they should be loaded by PnP, no extra care should be needed. In your case (due to info from observation step
2) I have no idea where to begin.
4) Only if it is a cloned disk they can have same diskid, but this would be completely different error (much higher level). You
would see PnP work allot before any of the problems occur.
5) They are appropriate. You are experiencing problem with your disk driver rather than with disk and volume IDs. First you have to
solve problem that prevent PnP from seeing disk.

Please retry observation step 2.
- Reboot device without disk present.
- delete setupapi.log
- Plug device.
- Give us setupapi.log.

Best regards,
Slobodan

"Brian Hoffmann" <Brian Hoffmann@discussions.microsoft.com> wrote in message
news:BA974DB1-A155-4544-8501-FAD4C6CB4BC7@microsoft.com...
> After implementing registry modifications described by Slobodon and Pieter in
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&edition=us&frame=right&th=a122cb8b26350253&seekm=s3r5nvs253iuh19uu55otpq1pq02gvv5lb%404ax.com#link9,
the ATA Flash Disk was detectable and mountable from RAMDisk image as described. However, this procedure fails when a DIFFERENT
flash part is substituted for the original (from which the RAM Disk image was created.) In this case, PnP driver load fails with
error CM_PROB_DRIVER_FAILED_LOAD - "Windows cannot load the device driver for this hardware. The driver may be corrupted or missing.
(Code 39)".
> All ugly details are included below.
>
> Many thanks in advance for any assistance.
>
> Best regards,
>
> Brian Hoffmann
>
>
>
>
>
>
> RAMDisk and Harddisk - Revisited (Technical Details)
>
> Objective:
> ----------
> To be able to boot XPE from an SDI-based RAMDisk image that will
> detect other physical hard drives that may be attached to the
> system, e.g. IDE ATA Flash or IDE hard drives. These other physical
> hard drives may or may not have bootable XPE images on them.
>
>
> Image & HW definitions:
> -----------------------
> Image_A: A post-FBA representation the Windows XPE
> system built by the Image_A.slx
>
> Flash_Part_A: An IDE ATA Flash drive containing the bootable
> XPE system "Image_A"
>
> SDI_Image_A: A SDI image built using SDIMgr to read the XPE
> system from Flash_Part_A
>
> Flash_Part_B: An IDE ATA Flash drive containing another
> unrelated XPE system image
>
> Image_A_Regedited: A post-FBA representation the Windows XPE system
> built by the Image_A.slx file, however, with the
> following modifications to the Windows Registry:
> (per Slobodon in this newsgroup thread...many thanks!)
>
> 1) Deleted all registry keys (other than "(Default)") in
> "HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices"
> (\\??\Volume{<guid>} and \DosDevices\...)
>
> 2) Deleted "SystemPartition" key from
> "HKEY_LOCAL_MACHINE\SYSTEM\Setup"
>
> Flash_Part_A_Regedited: An IDE ATA Flash drive containing the bootable
> XPE system "Image_A_Regedited"
>
> SDI_Image_A_Regedited: A SDI image built using SDIMgr to read the XPE
> system from Flash_Part_A_Regedited
>
>
> Specific Observations:
> ----------------------
> 1) When XPE is booted from SDI_Image_A and Flash_Part_A is attached
> to motherboard, RAMDisk is assigned the driver letter C:, which seems
> to mask and effectively hide Flash_Part_A, which been previously
> designated as drive letter C:. Flash_Part_A is not detected or mounted
> and remains invisible to Windows. This behavior is consistent with
> behavior described in this newsgroup thread.
>
> 2) When XPE is booted from SDI_Image_A_Regedited and Flash_Part_A is
> attached to the motherboard, the system behaves as expected. RAMDisk system
> root is assigned driver letter C: and Flash_Part_A is detected and assigned
> drive letter D:. Life is good! (Thanks again, Slobodon!)
>
> Setupapi.log captured from boot for this scenario shows:
>
> [SetupAPI Log]
> OS Version = 5.1.2600
> Platform ID = 2 (NT)
> Service Pack = 0.0
> Suite = 0x0040
> Product Type = 1
> Architecture = x86
> [2004/07/30 16:47:31 440.3 Driver Install]
> #-019 Searching for hardware ID(s): ramdisk\ramvolume
> #-198 Command line processed: C:\windows\system32\services.exe
> #-166 Device install function: DIF_SELECTBESTCOMPATDRV.
> #W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
> #W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
>
>
> 3) When XPE is booted from SDI_Image_A_Regedited and Flash_Part_B is
> attached to the motherboard, RAMDisk is assigned the driver letter "C:",
> and Flash_Part_B is not detected or mounted and remains invisible to Windows.
> (I intend to use RAMDisk image to re-image flash disk for upgrades/patches.
> Hence, it must be able to detect and mount flash parts with different serial numbers.)
>
> Setupapi.log captured from boot for this scenarios shows:
> [SetupAPI Log]
> OS Version = 5.1.2600
> Platform ID = 2 (NT)
> Service Pack = 0.0
> Suite = 0x0040
> Product Type = 1
> Architecture = x86
> [2004/07/30 16:55:47 440.3 Driver Install]
> #-019 Searching for hardware ID(s):
ide\disk_256mb_ata_flash_disk___________________adba217g,ide\_256mb_ata_flash_disk___________________adba217g,ide\disk_256mb_ata_fla
sh_disk___________________,_256mb_ata_flash_disk___________________adba217g,gendisk
> #-018 Searching for compatible ID(s): gendisk
> #-198 Command line processed: C:\windows\system32\services.exe
> #I022 Found "GenDisk" in C:\windows\inf\disk.inf; Device: "Disk drive"; Driver: "Disk drive"; Provider: "Microsoft"; Mfg:
"(Standard disk drives)"; Section name: "disk_install".
> #I023 Actual install section: [disk_install.NT]. Rank: 0x00000004. Effective driver date: 07/01/2001.
> #-166 Device install function: DIF_SELECTBESTCOMPATDRV.
> #I063 Selected driver installs from section [disk_install] in "c:\windows\inf\disk.inf".
> #I320 Class GUID of device remains: {4D36E967-E325-11CE-BFC1-08002BE10318}.
> #I060 Set selected driver.
> #I058 Selected best compatible driver.
> #-166 Device install function: DIF_INSTALLDEVICEFILES.
> #I124 Doing copy-only install of "IDE\DISK_256MB_ATA_FLASH_DISK___________________ADBA217G\5&1B4316AD&0&0.0.0".
> #-166 Device install function: DIF_REGISTER_COINSTALLERS.
> #I056 Coinstallers registered.
> #-166 Device install function: DIF_INSTALLINTERFACES.
> #-011 Installing section [disk_install.NT.Interfaces] from "c:\windows\inf\disk.inf".
> #I054 Interfaces installed.
> #-166 Device install function: DIF_INSTALLDEVICE.
> #I123 Doing full install of "IDE\DISK_256MB_ATA_FLASH_DISK___________________ADBA217G\5&1B4316AD&0&0.0.0".
> #I163 Device not started: Device has problem: 0x27: CM_PROB_DRIVER_FAILED_LOAD.
> #I121 Device install of "IDE\DISK_256MB_ATA_FLASH_DISK___________________ADBA217G\5&1B4316AD&0&0.0.0" finished successfully.
> [2004/07/30 16:56:17 440.8 Driver Install]
> #-019 Searching for hardware ID(s): ramdisk\ramvolume
> #-198 Command line processed: C:\windows\system32\services.exe
> #-166 Device install function: DIF_SELECTBESTCOMPATDRV.
> #W059 Selecting best compatible driver failed. Error 0xe0000228: There are no compatible drivers for this device.
> #W157 Default installer failed. Error 0xe0000228: There are no compatible drivers for this device.
>
>
>
> Specific Questions:
> -------------------
> 1) Should any arbitrary physical disk drive be detectable and mountable
> when Windows XPE boots from RAMDisk?
>
> 2) Setupapi.log information above seems to suggest that the device driver
> load for hard disk is failing in one case but not the other. Why?
> It appears that device drier load wasn't even attempted for Flash_Part_A.
> When I tried to force it, it also failed with similar error in observation
> "3" above. I don't understand why device driver load is always failing,
> however, the same flash part from which the RAMDisk image is constructed is
> mountable, while other flash parts are not (due to driver load failure).
> Why is this happening? Any workarounds?
>
> 3) What registry modifications or other process (e.g. FBA) can be
> employed to detect and mount physical drives when booted from RAMDisk?
>
> 4) Does it matter whether or not the physical hard drive contains
> a Windows XPE system or not?
>
> 5) Are the above modifications to the Windows Registry appropriate or
> are they introducing other problems?
>
>
>