Prev: DTM "INF Syntax Test" and INFGate.exe... how does '/N' command line switch work?
Next: OEMTextOut glyph position problem
From: eveilleux on 11 Apr 2007 13:14 1- using dpinst /sa does not suppress the Add/Remove program entry. Look at this extract from Dpinst.log: INFO: **************************************** INFO: 04/11/2007 11:00:07 INFO: Product Version 2.1.0.0. INFO: Version: 5.1.2600 Service Pack 2 INFO: Platform ID: 2 (NT) INFO: Service Pack: 2.0 INFO: Suite: 0x0100, Product Type: 1 INFO: Architecture: X86. INFO: Interactive Windows Station INFO: Command Line: 'dpinst /sa' INFO: DPInst is not multi-lingual. INFO: **************************************** INFO: Current working directory: 'Z:\TDMF\debug\Driver Package' INFO: Running on path 'Z:\TDMF\debug\Driver Package' INFO: No valid 'dpinst.xml' file provided. INFO: Install option set: Suppress Add or Remove Programs entries. INFO: Found driver package: 'Z:\TDMF\debug\Driver Package\dtcblock.inf'. INFO: Preinstalling 'z:\tdmf\debug\driver package\dtcblock.inf' ... INFO: ENTER: DriverPackagePreinstallW ERROR: Preinstall is not a supported operation for driver type 5 INFO: RETURN: DriverPackagePreinstallW (0x1) INFO: ENTER: DriverPackageGetPathW INFO: No driver store entry for z:\tdmf\debug\driver package\dtcblock.inf found. (Error code 0xE0000302.) INFO: RETURN: DriverPackageGetPathW (0xE0000302) INFO: ENTER: DriverPackageInstallW INFO: dtcblock.inf: checking signature with catalog 'z:\tdmf\debug\driver Package\dtcblock.cat' ... INFO: Driver package 'dtcblock.inf' is Authenticode signed. INFO: Copied 'dtcblock.inf' to driver store... INFO: Copied 'dtcblock.cat' to driver store... INFO: Commiting queue... INFO: Copied file: 'z:\tdmf\debug\driver package\dtclogmsg.dll' -> 'C:\WINDOWS\system32\DRVSTORE\dtcblock_79FB86867C5AB70D5EA90B6FA9796CCB21BC40DE\dtclogmsg.dll'. INFO: Copied file: 'z:\tdmf\debug\driver package\i386\dtcblock.sys' -> 'C:\WINDOWS\system32\DRVSTORE\dtcblock_79FB86867C5AB70D5EA90B6FA9796CCB21BC40DE\i386\dtcblock.sys'. INFO: Installing INF file "C:\WINDOWS\system32\DRVSTORE\dtcblock_79FB86867C5AB70D5EA90B6FA9796CCB21BC40DE\dtcblock.inf" of Type 5. INFO: installing class filter 'C:\WINDOWS\system32\DRVSTORE\dtcblock_79FB86867C5AB70D5EA90B6FA9796CCB21BC40DE\dtcblock.inf' INFO: 'C:\WINDOWS\system32\DRVSTORE\dtcblock_79FB86867C5AB70D5EA90B6FA9796CCB21BC40DE\dtcblock.inf' requires a reboot. INFO: The Stopping of device 'STORAGE\VOLUME\1&30A96598&0&SIGNATUREE679E679OFFSET6A829A600LENGTH40390800' was vetoed by 'STORAGE\Volume\1&30a96598&0&SignatureE679E679Offset6A829A600Length40390800' (veto type 16858448) INFO: The Stopping of device 'STORAGE\VOLUME\1&30A96598&0&SIGNATUREE679E679OFFSET7E00LENGTH3A9DFF400' was vetoed by 'STORAGE\Volume\1&30a96598&0&SignatureE679E679Offset7E00Length3A9DFF400' (veto type 16858496) INFO: The Stopping of device 'STORAGE\VOLUME\1&30A96598&0&SIGNATUREE679E679OFFSET820AFA600LENGTHFA087E00' was vetoed by 'STORAGE\Volume\1&30a96598&0&SignatureE679E679Offset820AFA600LengthFA087E00' (veto type 16858448) INFO: The Stopping of device 'STORAGE\VOLUME\1&30A96598&0&SIGNATUREE679E679OFFSET91AB8A200LENGTH65F1C00' was vetoed by 'STORAGE\Volume\1&30a96598&0&SignatureE679E679Offset91AB8A200Length65F1C00' (veto type 16858448) SUCCESS:Installation completed with code 0x0. INFO: RETURN: DriverPackageInstallW (0x0) INFO: ENTER: DriverPackageGetPathW SUCCESS:Found driver store entry. INFO: RETURN: DriverPackageGetPathW (0x0) INFO: Successfull installation of 'z:\tdmf\debug\driver package\dtcblock.inf'. INFO: Created entry in Add or Remove Programs for 'C:\WINDOWS\system32\DRVSTORE\dtcblock_79FB86867C5AB70D5EA90B6FA9796CCB21BC40DE\dtcblock.inf'. INFO: Machine will have to be rebooted to complete installation. INFO: Returning with code 0x40000001 INFO: 04/11/2007 11:00:50 2- it is impossible to uninstall, and then reinstall without rebooting, as the driver service created by the INF is not created in the registry. We assume that it is because the service key is marked for deletion on the next reboot and thus cannot be recreated before that happens. Is there a way to bypass that? Or at least if dpinst would fail the installation, we could indicate to the user that it did not work. Now, everything seems fine and when the user reboots after the installation, a blue screen occurs because Upperfilters contains our service, but the service does not exist. 3- When integrated with our current IS7 project, the uninstall does not remove the service and UpperFilters registry entries. It works fine when installed standalone, but it seems like it thinks that another component is using the driver and so does not want to remove it. Is there a way to get more info on what is going on, besides dpinst.log and setupapi.log? Does dpinst track all the accesses to the driver service key and then decides that the driver package is not the sole owner of the driver? |