Defaulting drives for "quick removal" not "performance"

B

Black Shuck

I want to set a global default for any disks, so they default to "quick
removal". I can seem to find a way to do this. The problem is, is that
I may make my image on a system and set it to "safe removal", but the
harddisk model, firmware, or something else may change, XPe then treats
this as a new device, and defauts it back to "performance" settings.

This is causing us particular relibility problems, as on occasion we
have data corruption product where the power from the system is removed
without proper shutdown. We don't need the performance gain that write
caching gives us, and would rather disable it across the board.

Is there some solution to this??
 
S

Slobodan Brcin \(eMVP\)

Hi Black,

Registry value UserRemovalPolicy is used for this purpose just set it to 3. classpnp.sys is the only functional part of driver that
use this value.
Unfortunately by default this value does not exist and it must be related to each disk driver instance in registry.

So the only way to enter this value automatically is to let PnP do it when it finds new disk.

You will have to change disk.inf in a way that when new HDD is detected by PnP it will add registry value that I mentioned.

HKLM\SYSTEM\CurrentControlSet\Enum\USBSTOR\ .... DiskName.... \ ...DiskInstanceId.. \Device Parameters\ClassPnP\UserRemovalPolicy
DWORD 3

When using PnP for changing registry keys you can rely on relative paths, so path prior to "Device Parameters" will be used as
assumed values for each new disk instance.

As you can see this can't be used from TD since DiskInstanceId is based on DISK serial number. I don't know if there is universal
registry master switch for this purpose.

Best regards,
Slobodan

PS:
Also there is another registry entry that might interest you "RemovalPolicy".
 
M

Michael Bate

This information appears to be very useful, but it is two years old
(July 2004). I think that predates SP2.

Is this still correct, or is there a newer and better way to set devices
for "Quick Removal." I am concerned about USB thumb drives that might
be pulled out prematurely. I am willing to give up the performance gain
provided by disk caching.

Thanks in advance,
Michael Bate
 
S

steves

Michael,

AFAIK, this is still required. I have not succeeded in getting TD to
overwrite the built-in disk.inf (component build order problem?), so I
copy the disk.inf file given below onto the image before running FBA
(part of an automated script), and have not had any further problems
with this.

Steves
SteveSATeyeDASHimagingDOTcom


;----------------------------------------------------------------------------
;Rem Modified Disk.Inf
;
; Modifications List:
;
; 12/06/2005 Added section [disk_install.NT.HW],
; with AddReg = Expect Surprise removal...
;
;----------------------------------------------------------------------------
[Version]
Signature="$WINDOWS NT$"
Class=DiskDrive
ClassGuid={4D36E967-E325-11CE-BFC1-08002BE10318}
Provider=%MSFT%
LayoutFile=layout.inf
DriverVer=07/01/2001,5.1.2535.0

[ClassInstall32.NT]
DelReg=disk_class_delreg
AddReg=disk_class_addreg
Copyfiles=storprop_copyfiles

[disk_class_delreg]
HKR,,EnumPropPages32

[disk_class_addreg]
HKR,,,,%DiskClassName%
HKR,,Installer32,,"StorProp.Dll,DiskClassInstaller"
HKR,,SilentInstall,,1
HKR,,NoInstallClass,,1
HKR,,TroubleShooter-0,,"hcp://help/tshoot/tsdrive.htm"
HKR,,Icon,,"-53"
HKR,,DeviceType,0x10001,7 ; FILE_DEVICE_DISK
HKR,,DeviceCharacteristics,0x10001,0x100 ; Use same security
checks on relative opens

;;
;; The AutoRunAlwaysDisable key is only for use when the hardware
cannot
;; accepts TEST_UNIT_READY commands. Disabling 'AutoRun' or
including
;; devices in this list will prevent removable media services from
being
;; able to properly handle these devices.
;;

[autorun_addreg]
HKLM,"System\CurrentControlSet\Services\disk","AutoRunAlwaysDisable",
0x00010008, "Brother RemovableDisk(U)"

[disk_copyfiles]
disk.sys

[storprop_copyfiles]
storprop.dll

[DestinationDirs]
disk_copyfiles=12
storprop_copyfiles=11

[Manufacturer]
%GenManufacturer%=disk_device
%Compaq%=compaq
%Mylex%=mylex

[disk_device]
%disk_devdesc% = disk_install, GenDisk
%opticaldisk_devdesc% = disk_install, GenOptical
%disk_devdesc% = disk_install, USBSTOR\DiskSony____MSC-U01_________
%disk_devdesc% = disk_install, USBSTOR\DiskSony____MSC-U01N________
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\FUJITSU&DynaMO-FE_OPTICAL_DRIVE&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\&SYM13FW500-DISK_DRIVE&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\&WDxxxA001RTL-Disk_Drive&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\MAC_TECHNOLOGIESINC.&MAC_THIN_FIREWIRE_DRIVE&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\VST_TECHNOLOGIESINC.&VST_THIN_FIREWIRE_DRIVE&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\Sony&PCVA-HD04&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\LSI_Logic&SYM13FW500-DISK_DRIVE&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\MELCO_INC&1394MEL-HD_DRIVE_&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\MELCO_INC&1394MEL-HD_DRIVE&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\MELCO_INC&1394MEL-MO_DRIVE_&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\LOGITEC&LMO-PFU&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\LOGITEC&LMO-AF&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\OXFW900_&LHD-SF__&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\LOGITEC&LHD-PFU&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\LOGITEC&LHD_AF&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_orderly_removal_disk_install,
SBP2\I-O_DATA_DEVICE_INC.&1394_Converter__&CmdSetId104d8&GenDisk
%disk_devdesc% = expect_surprise_removal_disk_install, LEXARUSB\GenDisk
%disk_devdesc% = expect_surprise_removal_disk_install,
SCSI\DiskToshiba_SD_Mem_Driver___

[compaq]
%compaq_array.DeviceDesc% = disk_install,
SCSI\DiskCompaq__Disk_Array______

[mylex]
%mylex_array.DeviceDesc% = disk_install, SCSI\DiskMYLEX___

[expect_orderly_removal_disk_install.NT]
CopyFiles=disk_copyfiles

[expect_orderly_removal_disk_install.NT.Services]
AddService=disk,2,disk_ServiceInstallSection

[expect_orderly_removal_disk_install.NT.HW]
AddReg=expect_orderly_removal_disk_install_HW.AddReg

[expect_orderly_removal_disk_install_HW.AddReg]
HKR,,"RemovalPolicy",0x00010001,0x2 ; ExpectOrderlyRemoval

[expect_surprise_removal_disk_install.NT]
CopyFiles=disk_copyfiles

[expect_surprise_removal_disk_install.NT.Services]
AddService=disk,2,disk_ServiceInstallSection

[expect_surprise_removal_disk_install.NT.HW]
AddReg=expect_surprise_removal_disk_install_HW.AddReg

[expect_surprise_removal_disk_install_HW.AddReg]
HKR,,"RemovalPolicy",0x00010001,0x3 ; ExpectSurpriseRemoval
HKR,"ClassPnP","UserRemovalPolicy",0x00010001,0x3 ;
ExpectSurpriseRemoval

[disk_install.NT]
CopyFiles=disk_copyfiles
ExcludeId=GenSFloppy,SCSI\DiskMATSHITALS-120_COSM___04,SCSI\DiskCOMPAQ__LS-120_VER5___AB
ExcludeId=SCSI\DiskCOMPAQ__LS-120_HIMA___01,SCSI\DiskMATSHITALS-120_VER5___00
ExcludeId=SCSI\DiskMATSHITALS-120/240____00
DiskCiPrivateData=4

[disk_install.NT.HW]
AddReg=expect_surprise_removal_disk_install_HW.AddReg

[disk_install.NT.Services]
AddService=disk,2,disk_ServiceInstallSection

[disk_ServiceInstallSection]
DisplayName=%disk_ServiceDesc%
ServiceType=1
StartType=0
ErrorControl=1
ServiceBinary = %12%\disk.sys
AddReg=autorun_addreg

---- End modified disk.inf -----
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top