Re: RAMDisk and harddisk - Revisited

Tech Tip: Click here to run a free scan for Windows Errors and optimize PC performance

From: Brian Hoffmann (Hoffmann_at_discussions.microsoft.com)
Date: 08/04/04


Date: Wed, 4 Aug 2004 14:17:01 -0700

Hi Slobodon,

Thank you for the thoughtful reply and sorry for providing too much data. It bothers my wife too sometimes. :-) I pursued your suggestions to gather setupapi.log under many different conditions (eg. flash, no flash, different flash) and made an interesting discovery. If I use SAME SIZE flash part for creation of SDI image, RAMDisk is ALWAYS able to detect and mount any arbitrary part. Otherwise, RAMDisk is NOT able to detect and mount other size flash parts. Below are setupapi.log files for these different conditions. At least for now, I have the workaround of being able to use same size part everywhere (including your recommended registry modifcations), however, I would really prefer not to live with this constraint permanently.

Many thanks for help with this topic as well as many others I have learned from you!

Best regards,

Brian

PS: Sorry for too much data below! :-)

setupapi.log with NO Flash Part Present:
************************************************
[SetupAPI Log]
OS Version = 5.1.2600
Platform ID = 2 (NT)
Service Pack = 0.0
Suite = 0x0040
Product Type = 1
Architecture = x86
[2004/08/04 09:42:25 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.

setupapi.log with SAME SIZE(192 MB) Flash Part Present:
********************************************************************
[SetupAPI Log]
OS Version = 5.1.2600
Platform ID = 2 (NT)
Service Pack = 0.0
Suite = 0x0040
Product Type = 1
Architecture = x86
[2004/08/04 10:45:24 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.
[2004/08/04 10:45:24 440.6 Driver Install]
#-019 Searching for hardware ID(s): storage\volume
#-198 Command line processed: C:\windows\system32\services.exe
#I022 Found "STORAGE\Volume" in C:\windows\inf\volume.inf; Device: "Generic volume"; Driver: "Generic volume"; Provider: "Microsoft"; Mfg: "Microsoft"; Section name: "volume_install".
#I023 Actual install section: [volume_install]. Rank: 0x00000000. Effective driver date: 07/01/2001.
#-166 Device install function: DIF_SELECTBESTCOMPATDRV.
#I063 Selected driver installs from section [volume_install] in "c:\windows\inf\volume.inf".
#I320 Class GUID of device remains: {71A27CDD-812A-11D0-BEC7-08002BE2092F}.
#I060 Set selected driver.
#I058 Selected best compatible driver.
#-166 Device install function: DIF_INSTALLDEVICEFILES.
#I124 Doing copy-only install of "STORAGE\VOLUME\1&30A96598&0&SIGNATURE8CE2437AOFFSET4000LENGTHB77C000".
#-166 Device install function: DIF_REGISTER_COINSTALLERS.
#I056 Coinstallers registered.
#-166 Device install function: DIF_INSTALLINTERFACES.
#-011 Installing section [volume_install.Interfaces] from "c:\windows\inf\volume.inf".
#I054 Interfaces installed.
#-166 Device install function: DIF_INSTALLDEVICE.
#I123 Doing full install of "STORAGE\VOLUME\1&30A96598&0&SIGNATURE8CE2437AOFFSET4000LENGTHB77C000".
#I121 Device install of "STORAGE\VOLUME\1&30A96598&0&SIGNATURE8CE2437AOFFSET4000LENGTHB77C000" finished successfully.

setupapi.log with DIFFERENT SIZE(256 MB) Flash Part Present:
**************************************************************************
[SetupAPI Log]
OS Version = 5.1.2600
Platform ID = 2 (NT)
Service Pack = 0.0
Suite = 0x0040
Product Type = 1
Architecture = x86
[2004/08/04 10:50:19 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_flash_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/08/04 10:50:40 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.

"Slobodan Brcin (eMVP)" wrote:

> 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?
> >
> >
> >
>
>
>



Relevant Pages

  • RAMDisk and harddisk - Revisited
    ... To be able to boot XPE from an SDI-based RAMDisk image that will ... #-166 Device install function: DIF_SELECTBESTCOMPATDRV. ... There are no compatible drivers for this device. ...
    (microsoft.public.windowsxp.embedded)
  • Re: USB Controller list in Device Manager
    ... The same occurs for the onboard SiS USB. ... #-166 Device install function: DIF_SELECTBESTCOMPATDRV. ... There are no compatible drivers for this device. ...
    (microsoft.public.windowsxp.hardware)
  • Re: RAMDisk and harddisk - Revisited
    ... suggestions to gather setupapi.log under many different conditions (eg. flash, no flash, different flash) and made an interesting ... > #-166 Device install function: ... There are no compatible drivers for this device. ... You are experiencing problem with your disk driver rather than with disk and volume IDs. ...
    (microsoft.public.windowsxp.embedded)