RAMDisk and harddisk - Revisited
From: Brian Hoffmann (Hoffmann_at_discussions.microsoft.com)
Date: 08/02/04
- Next message: Slobodan Brcin \(eMVP\): "Re: DUA - Adding To Pre-SP1 XPe Systems"
- Previous message: Joe Fitzgerald: "DUA - Adding To Pre-SP1 XPe Systems"
- Next in thread: Slobodan Brcin \(eMVP\): "Re: RAMDisk and harddisk - Revisited"
- Reply: Slobodan Brcin \(eMVP\): "Re: RAMDisk and harddisk - Revisited"
- Messages sorted by: [ date ] [ thread ]
Date: Mon, 2 Aug 2004 08:51:04 -0700
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_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/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?
- Next message: Slobodan Brcin \(eMVP\): "Re: DUA - Adding To Pre-SP1 XPe Systems"
- Previous message: Joe Fitzgerald: "DUA - Adding To Pre-SP1 XPe Systems"
- Next in thread: Slobodan Brcin \(eMVP\): "Re: RAMDisk and harddisk - Revisited"
- Reply: Slobodan Brcin \(eMVP\): "Re: RAMDisk and harddisk - Revisited"
- Messages sorted by: [ date ] [ thread ]
Relevant Pages
|