"windowless" device driver installation
The issue arises from an attempt to automate a proprietary device driver
installation:
void install (const GUID& setupClass, LPCWSTR deviceID)
{
HDEVINFO devInfoSet = ::SetupDiGetClassDevs (&setupClass,0,0,0);
SP_DEVINFO_DATA device =
{sizeof(SP_DEVINFO_DATA),{0,0,0,{0,0,0,0,0,0,0,0}},0,0};
SP_DRVINFO_DATA driver = {sizeof(SP_DRVINFO_DATA),0,0,{0},{0},{0},0,0};
DWORD i=-1;
::SetupDiOpenDeviceInfo (devInfoSet, deviceID, 0, 0, &device);
::SetupDiSetSelectedDevice (devInfoSet, &device);
::SetupDiBuildDriverInfoList (devInfoSet, &device, SPDIT_COMPATDRIVER);
while(::SetupDiEnumDriverInfo(devInfoSet, &device, SPDIT_COMPATDRIVER,
++i, &driver))
if(wcscmp(driver.MfgName, "My Company")==0) break;
* ::SetupDiSetSelectedDriver (devInfoSet, &device, &driver);
* ::SetupDiInstallDevice (devInfoSet, &device);
::SetupDiDestroyDriverInfoList (devInfoSet, &device, SPDIT_COMPATDRIVER);
::SetupDiDestroyDeviceInfoList (devInfoSet);
}
The INF in question is correct because the manual procedure (via
DeviceManager) succeeds.
The *'d calls produce these errors in setupapi.log:
Changed class GUID of device to {78A5C341-4599-66D3-B88D-78C04FAD4280}.
* Setting selected driver caused error: Error 0xe0000201: The INF or the
device information set or element does not match the specified install class.
Installing NULL driver for ROOT\*PNP0C02\PNPBIOS_3.
* Device install finished with error Error 0xe0000219: The installation
failed because a function driver was not specified for this device instance.
Of course they don't match! If they did, the correct driver would already be
installed and this procedure would not be necessary. What am I missing? Tag: hotpluggin Tag: 54826
A question on IoRegisterShutdownNotification()
Hello,
Why does the DDK say that only one driver in the stack should
register for a shutdown notification ? What if more than one drivers
in the stack need to know about a shutdown ?
Thanks,
- Gary. Tag: hotpluggin Tag: 54824
Start and stop via SCM not multiprocessor-safe?
Hello,
I found some strange behaviour, and I want to ask about your experience
on that.
Currently, I'm working on a driver which is not WDM, but legacy NT4. It
is installed and uninstalled via the service control manager (SCM).
As the driver verifier does some tests when a driver is unloaded, I have
the following procedure in a test application for now:
1. Start the driver (equivalent to "net start <drivername>")
2. Open the device and do what I want
3. ...
4. Close the device
5. Stop the driver (equivalent to "net stop <drivername>")
No. 1 and 5 will not be available in the resulting version of the
driver, but they are there for now.
Now, everything works for now, even the driver verifier does not
complain. One of the persons I send the driver for additional testing
did the following on his machine: He starts several instances (6, to be
precise) of this test application above, to make sure that this case is
handled correctly. Here, the "..." above (no. 3) is especially short,
thus, the driver does not perform any work at all, but quits rather
quickly.
On my machine (uniprocessor), everything works fine, no problems at all.
To my surprise, on his machine (hyper-threading) as well as on another
machine (SMP), the system bugchecks. Most often, it bugchecks with a
DRIVER_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS, sometimes, there
is a IRQL_NOT_LESS_OR_EQUAL.
Unfortunately, I do not have a HT or an SMP machine here. Anyway, from
the kernel dumps both send me, I found out that the driver was just
executing something in the DriverEntry() routine. Every time, it
bugchecks at different places, but it is always in the DriverEntry(), or
in functions which are only called from there.
If no. 1 and 5 above (starting and stopping the driver) is omitted,
everything works perfectly.
So, to me, it seems that No 5 (stopping the driver) in one instance of
the test application, and no 1 (starting the driver) in another instance
can occur simultaneously in the system on HT or SMP machines. Is this
true? Is there anything I can do about it to prevent this?
From my understanding, starting a driver via SCM will return with an
error message if the driver is already loaded. Thus, if stopping has not
yet taken place, another instance of the test app cannot start the
driver, thus, the driver would never reach the DriverEntry() routine.
But, from the crash dump, it must have reached the DriverEntry()
routine.
If the bugcheck would occur while operating the driver (no. 2-4), I
would think it is a design flaw of mine. But this does not happen!
Currently, to me, it seems like a design flaw of the OS, but I hope that
I'm mistaken here. ;-)
Any hints, suggestions, and remarks are welcome!
Regards,
Spiro.
--
Spiro R. Trikaliotis
http://www.trikaliotis.net/ Tag: hotpluggin Tag: 54814
Adding a TCP/IP printer programmatically!
Hi,
I need to add a TCP/IP printer programmatically.
I have done the following steps and struck somewhere in the middle,
1. Using the API "OpenPrinter" and with arguments ",XcvMonitor
Standard TCP/IP Port" I have obtained a printer handle.
2. Using the API "XcvData" I have filled the PORT_DATA_1 structure
with the necessary arguments. And a TCP/IP port gets created, which
can be viewed in the "Control Panel -> Printers" and right-click and
viewing the "Ports" tab.
I'm unable to proceed after this. I couldn't find any related
documentation also in this respect.
Any help in this regard would be highly appreciated.
Thanks,
Mike Tag: hotpluggin Tag: 54806
HCT FAT - File I/O Test passed but test log contain red lines
Hello all:
I am testing my SCSI miniport driver for a pci device that contain the flash
memory tnat is configured with 4Meg disk drive formatted as FAT. The FAT -
File I/O test passed but when reading the log there are many block of text
shown below here. In this block of line, there is one line printed red in the
log file. I just cannot think of what I can do to clear this "hint".
I think the SCSI PORT driver should take care of this problem, not the SCSI
miniport. Is this true? If yes, there got to be a problem with MS SCSI Port
driver. If not, what can I do to resolve this? Thank you.
>>>
If the API is CreateFile AND If the open should have succeeded AND
If the file existed before the call to CreateFile and if OPEN_ALWAYS
or CREATE_ALWAYS were used as the Create Disposition value, then
<b>GetLastERROR should return ERROR_ALREADY_EXISTS</b>
API used: hFile = X_CreateFile(AUXAPI,
lpTestInf->lpFileName,
lpTestInf->generic,
lpTestInf->share,
&SecurityAttributes,
lpTestInf->credisp,
lpTestInf->attrib,
lpTestInf->hTemplateFile
lpTestInf->lpFileName=F:\YZ^_`abc.def&#~.4,
lpTestInf->generic=c0000000,
lpTestInf->share=3,
SecurityAttributes.nLength=sizeof(SECURITY_ATTRIBUTES)
SecurityAttributes.bInheritHandle = 0
SecurityAttributes.lpSecurityDescriptor = NULL;
lpTestInf->credisp = 2
lpTestInf->attrib = 2
lpTestInf->hTemplateFile = 0
+TC_RESULT+ PASS AKRNFIL2 SdkCreateFile 77 9
+Test_Case+ 10 CreateFile test case
>>> Tag: hotpluggin Tag: 54805
Driver
Greetings,
I need to write a driver for Windows XP that will communicate with a
hardware device that is connected to a PC via Firewire (IEEE1394).
The device will only use the Read(10), Write(10) and the Start and
Stop Unit of the SCSI Reduced Block Commands. According to Microsoft
this is possible but the documentation is limited and not very
helpful. Does anyone have a suggestion, or a source that I could find
information on how to precede? Tag: hotpluggin Tag: 54803
DIFxApp and NDIS IM driver
I'm trying to install an application and NDIS IM driver using DIFxApp on
XP. The protocol .inf is copied to the driver store and installed,
however, the miniport .inf is not copied to the driver store and thus my
driver never binds the miniport. I have even tried this using the
DIFxApp IM driver example with DPINST and get the same result. That is,
the protocol .inf is copied over and installed but the miniport is not.
Any help is appreciated.
Thanks,
Dan Tag: hotpluggin Tag: 54802
modify e/s device waiting time
Hi there,
Dunno if this is the proper place to ask for this. We need to modify de
waiting time of an e/s device, wich is an external drive. Is there any
documentation regarding this ?
bests,
Sergio Borrás Tag: hotpluggin Tag: 54797
User application video capture via kernel streaming?
Hello folks,
I've been hired for a in-house project (basicly an audio/video recorder,
which can also do some realtime effects and output the processed audio/video
in the while).
Since I'm an extremely "low level" guy, and it was up to me to choose the
hardware that would run my software, I implemented the audio part using the
kernel streaming method (studying DirectKS Microsoft sample, although I
rewrote everything from scratch).
This gives low latency, but I'd have followed this road even if it didn't
offer any such advantages over DirectSound. The reasons are simple, as I
said I'm a low-level coder (and I'm not specialized on Windows, rather,
often I work with proprietary hardware and OS), and I liked the more direct
interfacing with the hardware, which makes my programming life actually
easier and removes overhead (from my work and the CPU as well) and nonetheless
makes programming much more fun!
Now I've to write the video capture part, and I was wondering if an analogous
exists? What is the lowest-level possible when doing video capture from any
PCI card on Windows? It doesn't matter if, like the audio kernel streaming,
it won't be supported on Windows 2005.. because this box will always run
Win2K anyway, and on hardware chosen by me.
Some, even many of you may disagree with me, but I like the idea of doing
it the "lowest reasonable level possible", so I'd like to talk directly
with the driver (I don't pretend to talk directly with the hardware in
Windows, you see), and I'm already conscious of the disadvantages.
Please, could any kind soul direct me to the right path to follow? I'm
quite new to this kind of programming in Windows, and my battles with Google,
MSDN and DejaNews didn't shed much light on the subject. :(
Thanks!
Andrea Tag: hotpluggin Tag: 54796
1394bus.sys problem with REQUEST_ASYNC_WRITE
Hello,
We have a problem with calls to REQUEST_ASYNC_WRITE in a driver for one of
our devices: With a rare occurence rate ( ~1/10000, depends on computer
hardware), request_async_write returns 0xC00000B5 (STATUS_IO_TIMEOUT).
The access to bus is then locked, the only possibility is to request a bus
reset, after which normal access is reestablished.
Any ideas about this timeout and the reasons of this behavior?
Thanks in advance,
Sylvain Yon Tag: hotpluggin Tag: 54795
Support USB2.0 High-Speed, High Bandwidth Endpoints
Dear Sir,
My Company is the IC Design House.
We are design IC for 802.11 QOS.
Does Windows XP USB2.0 EHCI driver support "the High-Speed, High Bandwidth
Endpoints" ?????
In USB2.0 spec......... section 5.9....
5.9 High-Speed, High Bandwidth Endpoints
USB supports individual high-speed interrupt or isochronous endpoints that
require data rates up to
192 Mb/s (i.e., 3072 data bytes per microframe). One, two, or three
high-speed transactions are allowed in
a single microframe to support high-bandwidth endpoints.
Best Regards,
CLT Tag: hotpluggin Tag: 54794
How to debug Bsod 0x7B in scsi miniport during system boot ?
Hello to All,
I am developping scsi miniport driver for custom Flash under XP
Embedded.
When I boot from HDD the miniport successfully loads and windows
mounts the Flash card (with compressed NTFS).
When I boot from Flash card (I have BIOS int 13 support for Flash) I
managed
succesfully pass the miniport Init (DeviceEntry , FindAdapter,
HardwareInitialize) and after a number of StartIO reads to sector 0
and Read_Capacity I get BSOF 0x7B :
i.e.
*** Fatal System Error: 0x0000007b
(0xFC938640,0xC0000034,0x00000000,0x00000000)
The devnode for device is created:
DevNode 0x81288008 for PDO 0x8128b538
InstancePath is "ROOT\FlashDrv\0000"
ServiceName is "FlashDrv"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81288c98 for PDO 0x812881e0
InstancePath is
"SCSI\Disk&Ven_Compulab&Prod_Primary_Flash&Rev_1001\1&2c231adf&0&000"
ServiceName is "disk"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
The BSOF comes from nt!IopMarkBootPartition.
My flash partition is active and it boots with non miniport version of
driver,
so I conclude that the MBR and BootPartition is OK.
I compared debug trace of HDD and Flash boot processes and found the
match till the crash point .
After the crash point the HDD version issued read sector 63 request.
I don't know why the kernel can't read boot partition properly.
And the only tool for debug that I have for now is this forum.
What I chaecked:
1) The Hardware layer Initialize and reads Flash card properly.
2) The MBF is valid and the boot partition is marked as active.
3) I cheked for a conflict with atapi.sys (booting without attached
HDD or removing atapi.sys from the system)
4) My ARC path is multi(0)disk(0)rdisk(0)partition(1) and it is the
only one that works (not SCSI or signature).
I stuck with this problem for a week and don't know what to do.
There were a copuple of people at this forum that had the same problem
, but they hadn't posted their solution .
Any help or advice will be appreciated !
Regards,
Konstantin. Tag: hotpluggin Tag: 54791
How to debug Bsod 0x7B in scsi miniport during system boot ?
Hello to All,
I am developping scsi miniport driver for custom Flash under XP
Embedded.
When I boot from HDD the miniport successfully loads and windows
mounts the Flash card (with compressed NTFS).
When I boot from Flash card (I have BIOS int 13 support for Flash) I
managed
succesfully pass the miniport Init (DeviceEntry , FindAdapter,
HardwareInitialize) and after a number of StartIO reads to sector 0
and Read_Capacity I get BSOF 0x7B :
i.e.
*** Fatal System Error: 0x0000007b
(0xFC938640,0xC0000034,0x00000000,0x00000000)
The devnode for device is created:
DevNode 0x81288008 for PDO 0x8128b538
InstancePath is "ROOT\FlashDrv\0000"
ServiceName is "FlashDrv"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81288c98 for PDO 0x812881e0
InstancePath is
"SCSI\Disk&Ven_Compulab&Prod_Primary_Flash&Rev_1001\1&2c231adf&0&000"
ServiceName is "disk"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
The BSOF comes from nt!IopMarkBootPartition.
My flash partition is active and it boots with non miniport version of
driver,
so I conclude that the MBR and BootPartition is OK.
I compared debug trace of HDD and Flash boot processes and found the
match till the crash point .
After the crash point the HDD version issued read sector 63 request.
I don't know why the kernel can't read boot partition properly.
And the only tool for debug that I have for now is this forum.
What I chaecked:
1) The Hardware layer Initialize and reads Flash card properly.
2) The MBF is valid and the boot partition is marked as active.
3) I cheked for a conflict with atapi.sys (booting without attached
HDD or removing atapi.sys from the system)
4) My ARC path is multi(0)disk(0)rdisk(0)partition(1) and it is the
only one that works (not SCSI or signature).
I stuck with this problem for a week and don't know what to do.
There were a copuple of people at this forum that had the same problem
, but they hadn't posted their solution .
Any help or advice will be appreciated !
Regards,
Konstantin.
P.S.
My full debug trace :
Opened \\.\COM1
Waiting to reconnect...
Verbose mode ON.
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Kernel Debugger connection established.
Symbol search path is: E:\Symbols\XPSP1;E:\Symbols\XPSP1CHK
Executable search path is:
Loading symbols for 80a02000 ntoskrnl.exe -> ntoskrnl.exe
ModLoad: 80a02000 80d6d000 ntoskrnl.exe
Windows XP Kernel Version 2600 MP (1 procs) Checked x86 compatible
Built by: 2600.xpsp1.020828-1920
Kernel base = 0x80a02000 PsLoadedModuleList = 0x80ae43b8
System Uptime: not available
Loaded dbghelp extension DLL
Loaded ext extension DLL
Loaded exts extension DLL
Loaded kext extension DLL
Loaded kdexts extension DLL
Opened log file 'dbg'
Symbol search path is:
SRV*c:\Symbols*http://msdl.microsoft.com/download/symbols;E:\WINDDK\3790\src\storage\miniport\flashmini\objchk_wnet_x86\i386
Force unload of ntoskrnl.exe
ModLoad: 80a02000 80d6d000 ntoskrnl.exe
ModLoad: 80100000 80128080 HAL.CHK
ModLoad: fca21000 fca22b80 kdcom.dll
ModLoad: fc931000 fc934000 BOOTVID.dll
ModLoad: fc521000 fc530600 pci.sys
ModLoad: fc531000 fc539c00 isapnp.sys
ModLoad: fc541000 fc54a280 MountMgr.sys
ModLoad: fc4e1000 fc4ff880 ftdisk.sys
ModLoad: fca23000 fca24100 WMILIB.SYS
ModLoad: fca25000 fca26700 dmload.sys
ModLoad: fc4bd000 fc4e0b80 dmio.sys
ModLoad: fc7a1000 fc7a5900 PartMgr.sys
ModLoad: fca27000 fca28280 intelide.sys
ModLoad: fc7a9000 fc7aec80 PCIIDEX.SYS
ModLoad: fc4a0000 fc4bc400 pcmcia.sys
ModLoad: fc46d000 fc49f780 atapi.sys
ModLoad: fc551000 fc55c000 FlashDrv.sys
ModLoad: fc43b000 fc46c100 SCSIPORT.SYS
ModLoad: fc37c000 fc43aa80 dmboot.sys
ModLoad: fc368000 fc37b780 KSecDD.sys
ModLoad: fc2de000 fc367300 Ntfs.sys
ModLoad: fc2b5000 fc2dde80 NDIS.sys
ModLoad: fc29b000 fc2b4680 Mup.sys
ModLoad: fc288000 fc29a500 disk.sys
ModLoad: fc265000 fc287100 CLASSPNP.SYS
Break instruction exception - code 80000003 (first chance)
*******************************************************************************
*
*
* You are seeing this message because you pressed either
*
* CTRL+C (if you run kd.exe) or,
*
* CTRL+BREAK (if you run WinDBG),
*
* on your debugger machine's keyboard.
*
*
*
* THIS IS NOT A BUG OR A SYSTEM CRASH
*
*
*
* If you did not intend to break into the debugger, press the "g" key,
then *
* press the "Enter" key now. This message might immediately reappear.
If it *
* does, press "g" and "Enter" again.
*
*
*
*******************************************************************************
Loading symbols for 80a02000 ntoskrnl.exe -> ntoskrnl.exe
nt!RtlpBreakWithStatusInstruction:
80aaad34 cc int 3
Loading symbols for 80100000 HAL.CHK -> HAL.CHK
Loading symbols for fc265000 CLASSPNP.SYS -> CLASSPNP.SYS
Loading symbols for fc288000 disk.sys -> disk.sys
Loading symbols for fc29b000 Mup.sys -> Mup.sys
Loading symbols for fc2b5000 NDIS.sys -> NDIS.sys
Loading symbols for fc2de000 Ntfs.sys -> Ntfs.sys
Loading symbols for fc368000 KSecDD.sys -> KSecDD.sys
Loading symbols for fc37c000 dmboot.sys -> dmboot.sys
Loading symbols for fc43b000 SCSIPORT.SYS -> SCSIPORT.SYS
Loading symbols for fc46d000 atapi.sys -> atapi.sys
Loading symbols for fc4a0000 pcmcia.sys -> pcmcia.sys
Loading symbols for fc4bd000 dmio.sys -> dmio.sys
Loading symbols for fc4e1000 ftdisk.sys -> ftdisk.sys
Loading symbols for fc521000 pci.sys -> pci.sys
Loading symbols for fc531000 isapnp.sys -> isapnp.sys
Loading symbols for fc541000 MountMgr.sys -> MountMgr.sys
Loading symbols for fc551000 FlashDrv.sys -> FlashDrv.sys
*** ERROR: Module load completed but symbols could not be loaded for
FlashDrv.sys
Loading symbols for fc7a1000 PartMgr.sys -> PartMgr.sys
Loading symbols for fc7a9000 PCIIDEX.SYS -> PCIIDEX.SYS
Loading symbols for fc931000 BOOTVID.dll -> BOOTVID.dll
Loading symbols for fca21000 kdcom.dll -> kdcom.dll
Loading symbols for fca23000 WMILIB.SYS -> WMILIB.SYS
Loading symbols for fca25000 dmload.sys -> dmload.sys
Loading symbols for fca27000 intelide.sys -> intelide.sys
*************************************************************************
***
***
***
***
*** Your debugger is not using the correct symbols
***
***
***
*** In order for this command to work properly, your symbol path
***
*** must point to .pdb files that have full type information.
***
***
***
*** Certain .pdb files (such as the public OS symbols) do not
***
*** contain the required information. Contact the group that
***
*** provided you with these symbols if you need this command to
***
*** work.
***
***
***
***
***
*************************************************************************
kd> ed ClassDebug 3
kd> ed ClassDebug 15
kd> ed Kd_ScsiPort_Mask 15
kd> g
HAL GetPciData: found configured pci bridge
HAL GetPciData: found configured pci bridge
PpInitializeDriverDB: Driver database not loaded!
PiLookupInDDB: Failed to open driver database
\SystemRoot\AppPatch\drvmain.sdb!
FlashDrv:
Flash IDE MiniPort Driver
FlashDrv: Flash Find Adapter
FlashDrv: SystemIOBusNumber is: 0
FlashDrv: Starting Flash Hardware Initilalize ...
FlashDrv: Samsung FlashDrv: 128FlashDrv: MB Nand flash detected.
FlashDrv: Successfully created NAND_A Interface
FlashDrv: Read ID command: maker code = 70, device code = 70.
FlashDrv: Unknown or no Nand flash detected.
FlashDrv: Flash NAND_B not found
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 12 to device 0 at Lun 0
FlashDrv: IdeSendCommand: Processing SCSIOP_INQUIRY for target0 at
LUN0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 81291850
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 12 to device 0 at Lun 0
FlashDrv: IdeSendCommand: Processing SCSIOP_INQUIRY for target0 at
LUN0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 81291850
ScsiPort: SpReleaseRemoveLock: Release for object 0X81288930 & irp
0XABCDABCD caused lock to go to zero
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 12 to device 1 at Lun 0
FlashDrv: IdeSendCommand: LUN not supported
FlashDrv: Still in StartIO
ScsiPort: SpSendSrbSynchronous: Unfreeze Queue TID 1
ScsiPort: SpReleaseRemoveLock: Release for object 0X81288930 & irp
0XABCDABCD caused lock to go to zero
ScsiPort: SpReleaseRemoveLock: Release for object 0X8124B038 & irp
0X8124B038 caused lock to go to zero
IOINIT: Built-in driver \Driver\FlashDrv took 8.7s to initialize
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: Custom IO_CONTROL received 0
FlashDrv: Still in StartIO
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 1a to device 0 at Lun 0
FlashDrv: IdeSendCommand: Processing SCSIOP_MODE_SENSE command
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 81285D48
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 1a to device 0 at Lun 0
FlashDrv: IdeSendCommand: Processing SCSIOP_MODE_SENSE command
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 2 - 9
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 25 to device 0 at Lun 0
FlashDrv: IDE disk 0 - #sectors 63, #heads 4, #cylinders 1006
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
ScsiPort: ScsiPortStartIo: Enter routine
ScsiPort: ScsiPortStartIoSynchronized: Enter routine
FlashDrv: IdeSendCommand: Command 28 to device 0 at Lun 0
FlashDrv: Reading sector 0 - 0
FlashDrv: Still in StartIO
ScsiPort: SpProcessCompletedRequests: Iocompletion IRP 8126CE70
*** Fatal System Error: 0x0000007b
(0xFC938634,0xC0000034,0x00000000,0x00000000)
Break instruction exception - code 80000003 (first chance)
A fatal system error has occurred.
Debugger entered on first try; Bugcheck callbacks have not been
invoked.
A fatal system error has occurred.
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Loading symbols for 80a02000 ntoskrnl.exe -> ntoskrnl.exe
ModLoad: 80a02000 80d6d000 ntoskrnl.exe
Loading Kernel Symbols
.ModLoad: 80100000 80128080 \WINDOWS\system32\HAL.CHK
.ModLoad: fca21000 fca22b80 kdcom.dll
.ModLoad: fc931000 fc934000 \WINDOWS\system32\BOOTVID.dll
.ModLoad: fc521000 fc530600 pci.sys
.ModLoad: fc531000 fc539c00 isapnp.sys
.ModLoad: fc541000 fc54a280 MountMgr.sys
.ModLoad: fc4e1000 fc4ff880 ftdisk.sys
.ModLoad: fca23000 fca24100 \WINDOWS\system32\drivers\WMILIB.SYS
.ModLoad: fca25000 fca26700 dmload.sys
.ModLoad: fc4bd000 fc4e0b80 dmio.sys
.ModLoad: fc7a1000 fc7a5900 PartMgr.sys
.ModLoad: fca27000 fca28280 intelide.sys
.ModLoad: fc7a9000 fc7aec80 \WINDOWS\system32\drivers\PCIIDEX.SYS
.ModLoad: fc4a0000 fc4bc400 pcmcia.sys
.ModLoad: fc46d000 fc49f780 atapi.sys
.ModLoad: fc551000 fc55c000 FlashDrv.sys
.ModLoad: fc43b000 fc46c100 \WINDOWS\system32\Drivers\SCSIPORT.SYS
.ModLoad: fc37c000 fc43aa80 dmboot.sys
.ModLoad: fc368000 fc37b780 KSecDD.sys
.ModLoad: fc2de000 fc367300 Ntfs.sys
.ModLoad: fc2b5000 fc2dde80 NDIS.sys
.ModLoad: fc29b000 fc2b4680 Mup.sys
.ModLoad: fc288000 fc29a500 disk.sys
.ModLoad: fc265000 fc287100 \WINDOWS\system32\drivers\CLASSPNP.SYS
Loading unloaded module list
Loading User Symbols
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************
Use !analyze -v to get detailed debugging information.
BugCheck 7B, {fc938634, c0000034, 0, 0}
Probably caused by : ntoskrnl.exe ( nt!KiBugCheckDebugBreak+19 )
Followup: MachineOwner
---------
nt!RtlpBreakWithStatusInstruction:
80aaad34 cc int 3
kd> !devnode 0 1
Dumping IopRootDeviceNode (= 0x81291dd0)
DevNode 0x81291dd0 for PDO 0x81291f10
InstancePath is "HTREE\ROOT\0"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81291940 for PDO 0x81291a98
InstancePath is "Root\SYSTEM\0000"
ServiceName is "swenum"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
DevNode 0x81291600 for PDO 0x81291758
InstancePath is "Root\SYSTEM\0001"
ServiceName is "update"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
DevNode 0x81291260 for PDO 0x812913b8
InstancePath is "ROOT\PCI_HAL\0000"
ServiceName is "\Driver\PCI_HAL"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x812904f8 for PDO 0x8126ed88
InstancePath is "PCI_HAL\PNP0A03\0"
ServiceName is "pci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8126c218 for PDO 0x8126cca8
InstancePath is
"PCI\VEN_8086&DEV_1130&SUBSYS_00000000&REV_04\2&ebb567f&0&00"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8126b4f0 for PDO 0x8126cab0
InstancePath is
"PCI\VEN_8086&DEV_1132&SUBSYS_00000000&REV_04\2&ebb567f&0&10"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126b3c8 for PDO 0x8126c760
InstancePath is
"PCI\VEN_8086&DEV_2418&SUBSYS_00000000&REV_02\2&ebb567f&0&F0"
ServiceName is "pci"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8126a840 for PDO 0x8128d768
InstancePath is
"PCI\VEN_8086&DEV_1209&SUBSYS_00000000&REV_10\3&755ba3f&0&00F0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126a718 for PDO 0x8128d570
InstancePath is
"PCI\VEN_8086&DEV_1209&SUBSYS_00000000&REV_10\3&755ba3f&0&08F0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126a5f0 for PDO 0x8128d220
InstancePath is
"PCI\VEN_104C&DEV_AC51&SUBSYS_00000000&REV_00\3&755ba3f&0&18F0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126a4c8 for PDO 0x8126ae40
InstancePath is
"PCI\VEN_104C&DEV_AC51&SUBSYS_00000000&REV_00\3&755ba3f&0&19F0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126a3a0 for PDO 0x8126aaf0
InstancePath is
"PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10\3&755ba3f&0&20F0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126b2a0 for PDO 0x8126c568
InstancePath is
"PCI\VEN_8086&DEV_2410&SUBSYS_00000000&REV_02\2&ebb567f&0&F8"
ServiceName is "isapnp"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81269ee0 for PDO 0x8126a1a8
InstancePath is "ISAPNP\ReadDataPort\0"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8126b178 for PDO 0x8126c370
InstancePath is
"PCI\VEN_8086&DEV_2411&SUBSYS_24118086&REV_02\2&ebb567f&0&F9"
ServiceName is "intelide"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x812683f0 for PDO 0x81268548
InstancePath is "PCIIDE\IDEChannel\3&2df46cfe&0&0"
ServiceName is "atapi"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8128a268 for PDO 0x81262030
InstancePath is
"IDE\DiskMaxtor_32049H2__________________________YAH814Y0\324c52313954434b202020202020202020202020"
ServiceName is "disk"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8128d008 for PDO 0x8126be40
InstancePath is
"PCI\VEN_8086&DEV_2412&SUBSYS_24128086&REV_02\2&ebb567f&0&FA"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8128dee0 for PDO 0x8126baf0
InstancePath is
"PCI\VEN_8086&DEV_2413&SUBSYS_24138086&REV_02\2&ebb567f&0&FB"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8128ddb8 for PDO 0x8126b7a0
InstancePath is
"PCI\VEN_8086&DEV_2415&SUBSYS_00000000&REV_02\2&ebb567f&0&FD"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x812901f8 for PDO 0x81290350
InstancePath is "Root\*PNP030b\1_0_22_0_32_0"
ServiceName is "i8042prt"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
DevNode 0x8126d008 for PDO 0x81290100
InstancePath is "Root\*PNP0400\1_0_20_0_0_0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126ddb8 for PDO 0x8126df10
InstancePath is "Root\*PNP0501\1_0_17_0_0_0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126db68 for PDO 0x8126dcc0
InstancePath is "Root\*PNP0501\1_0_17_1_0_0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126d918 for PDO 0x8126da70
InstancePath is "Root\*PNP0700\1_0_13_0_26_0"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
Problem = CM_PROB_NOT_CONFIGURED
DevNode 0x8126d6c8 for PDO 0x8126d820
InstancePath is "Root\*PNP0F03\1_0_21_0_31_0"
ServiceName is "i8042prt"
State = DeviceNodeInitialized (0x302)
Previous State = DeviceNodeUninitialized (0x301)
DevNode 0x812698e0 for PDO 0x81269a38
InstancePath is "ROOT\Ftdisk\0000"
ServiceName is "Ftdisk"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81280cd8 for PDO 0x81284bc8
InstancePath is
"STORAGE\Volume\1&30a96598&0&Signature27612761Offset7E00Length7D040000"
TargetDeviceNotify List - f 0xe10b6cc8 b 0xe10b6cc8
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81280bb0 for PDO 0x81284908
InstancePath is
"STORAGE\Volume\1&30a96598&0&Signature27612761Offset7D04FC00LengthFA087E00"
TargetDeviceNotify List - f 0xe10e20e8 b 0xe10e20e8
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81280a88 for PDO 0x812843f8
InstancePath is
"STORAGE\Volume\1&30a96598&0&Signature27612761Offset1770DF800Length34DB47C00"
TargetDeviceNotify List - f 0xe109e6d8 b 0xe109e6d8
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81280960 for PDO 0x81280e30
InstancePath is
"STORAGE\Volume\1&30a96598&0&Signature2B362B36Offset7E00Length7BC1200"
TargetDeviceNotify List - f 0xe10bbfd0 b 0xe10bbfd0
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x8128c5c0 for PDO 0x8128c718
InstancePath is "ROOT\dmio\0000"
ServiceName is "dmio"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81288008 for PDO 0x8128b538
InstancePath is "ROOT\FlashDrv\0000"
ServiceName is "FlashDrv"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
DevNode 0x81288c98 for PDO 0x812881e0
InstancePath is
"SCSI\Disk&Ven_Compulab&Prod_Primary_Flash&Rev_1001\1&2c231adf&0&000"
ServiceName is "disk"
State = DeviceNodeStarted (0x308)
Previous State = DeviceNodeEnumerateCompletion (0x30d)
kd> !thread
THREAD 81279020 Cid 0004.0008 Teb: 00000000 Win32Thread: 00000000
RUNNING on processor 0
Not impersonating
DeviceMap e1002838
Owning Process 8127a470
Wait Start TickCount 1861 Elapsed Ticks: 1
Context Switch Count 55
UserTime 00:00:00.0000
KernelTime 00:00:13.0809
Start Address nt!Phase1Initialization (0x80cfcc29)
Stack Init fc939000 Current fc938418 Base fc939000 Limit fc936000 Call
0
Priority 31 BasePriority 8 PriorityDecrement 0 DecrementCount 0
ChildEBP RetAddr Args to Child
fc9380b0 80a2eecc 00000003 fc9383e0 fc938634
nt!RtlpBreakWithStatusInstruction (FPO: [1,0,0])
fc9380fc 80a2f9da 00000003 80085000 e10a3530
nt!KiBugCheckDebugBreak+0x19 (FPO: [Non-Fpo])
fc9384c8 80a2ffbd 0000007b fc938634 c0000034 nt!KeBugCheck2+0x46d
(FPO: [Non-Fpo])
fc9384e8 80cfe341 0000007b fc938634 c0000034 nt!KeBugCheckEx+0x19
(FPO: [Non-Fpo])
fc938648 80d03516 80085000 80085000 00000000
nt!IopMarkBootPartition+0xbd (FPO: [Non-Fpo])
fc938698 80cffa7f 80085000 fc9387dc 00034000
nt!IopInitializeBootDrivers+0x511 (FPO: [Non-Fpo])
fc938838 80cfd5c8 80085000 00000000 81279020 nt!IoInitSystem+0x756
(FPO: [Non-Fpo])
fc938dac 80baee56 80085000 00000000 00000000
nt!Phase1Initialization+0x99f (FPO: [Non-Fpo])
fc938ddc 80ac815e 80cfcc29 80085000 00000000
nt!PspSystemThreadStartup+0x34 (FPO: [Non-Fpo])
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
kd> !analyze -v
*******************************************************************************
*
*
* Bugcheck Analysis
*
*
*
*******************************************************************************
INACCESSIBLE_BOOT_DEVICE (7b)
During the initialization of the I/O system, it is possible that the
driver
for the boot device failed to initialize the device that the system is
attempting to boot from, or it is possible for the file system that is
supposed to read that device to either fail its initialization or to
simply
not recognize the data on the boot device as a file system structure
that
it recognizes. In the former case, the argument (#1) is the address
of a
Unicode string data structure that is the ARC name of the device from
which
the boot was being attempted. In the latter case, the argument (#1)
is the
address of the device object that could not be mounted.
If this is the initial setup of the system, then this error can occur
if
the system was installed on an unsupported disk or SCSI controller.
Note
that some controllers are supported only by drivers which are in the
Windows
Driver Library (WDL) which requires the user to do a custom install.
See
the Windows Driver Library for more information.
This error can also be caused by the installation of a new SCSI
adapter or
disk controller or repartitioning the disk with the system partition.
If
this is the case, on x86 systems the boot.ini file must be edited or
on ARC
systems setup must be run. See the "Advanced Server System
Administrator's
User Guide" for information on changing boot.ini.
If the argument is a pointer to an ARC name string, then the format of
the
first two (and in this case only) longwords will be:
USHORT Length;
USHORT MaximumLength;
PWSTR Buffer;
That is, the first longword will contain something like 00800020 where
20
is the actual length of the Unicode string, and the next longword will
contain the address of buffer. This address will be in system space,
so
the high order bit will be set.
If the argument is a pointer to a device object, then the format of
the first
word will be:
USHORT Type;
That is, the first word will contain a 0003, where the Type code will
ALWAYS
be 0003.
Note that this makes it immediately obvious whether the argument is a
pointer
to an ARC name string or a device object, since a Unicode string can
never
have an odd number of bytes, and a device object will always have a
Type
code of 3.
Arguments:
Arg1: fc938634, Pointer to the device object or Unicode string of ARC
name
Arg2: c0000034
Arg3: 00000000
Arg4: 00000000
Debugging Details:
------------------
Database SolnDb not connected
DEFAULT_BUCKET_ID: DRIVER_FAULT
BUGCHECK_STR: 0x7B
LAST_CONTROL_TRANSFER: from 80a2eecc to 80aaad34
STACK_TEXT:
fc9380b0 80a2eecc 00000003 fc9383e0 fc938634
nt!RtlpBreakWithStatusInstruction
fc9380fc 80a2f9da 00000003 80085000 e10a3530
nt!KiBugCheckDebugBreak+0x19
fc9384c8 80a2ffbd 0000007b fc938634 c0000034 nt!KeBugCheck2+0x46d
fc9384e8 80cfe341 0000007b fc938634 c0000034 nt!KeBugCheckEx+0x19
fc938648 80d03516 80085000 80085000 00000000
nt!IopMarkBootPartition+0xbd
fc938698 80cffa7f 80085000 fc9387dc 00034000
nt!IopInitializeBootDrivers+0x511
fc938838 80cfd5c8 80085000 00000000 81279020 nt!IoInitSystem+0x756
fc938dac 80baee56 80085000 00000000 00000000
nt!Phase1Initialization+0x99f
fc938ddc 80ac815e 80cfcc29 80085000 00000000
nt!PspSystemThreadStartup+0x34
00000000 00000000 00000000 00000000 00000000 nt!KiThreadStartup+0x16
FOLLOWUP_IP:
nt!KiBugCheckDebugBreak+19
80a2eecc eb59 jmp nt!KiBugCheckDebugBreak+0x74
(80a2ef27)
FOLLOWUP_NAME: MachineOwner
SYMBOL_NAME: nt!KiBugCheckDebugBreak+19
MODULE_NAME: nt
IMAGE_NAME: ntoskrnl.exe
DEBUG_FLR_IMAGE_TIMESTAMP: 3d6dd014
STACK_COMMAND: kb
BUCKET_ID: 0x7B_nt!KiBugCheckDebugBreak+19
Followup: MachineOwner
--------- Tag: hotpluggin Tag: 54782
Confusion about AVStream Properties
I'm confused about the declaration of properties in an AVStream driver.
The samples and the documentation seem to contradict each other, as do the
code I've found through Google.
Let's take an example. We're writing, among others, a TV tuner driver.
Looking in the Europa sample, in the analog tuner properties, we find,
among others:
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_TUNER_CAPS,
AnlgTunerCapsGetHandler,
sizeof(KSPROPERTY_TUNER_CAPS_S),
sizeof(KSPROPERTY_TUNER_CAPS_S),
NULL,
NULL,
0,
NULL,
NULL,
0
),
DEFINE_KSPROPERTY_ITEM
(
KSPROPERTY_TUNER_MODE_CAPS,
AnlgTunerCapsGetHandler,
sizeof(KSPROPERTY_TUNER_MODE_CAPS_S),
sizeof(KSPROPERTY_TUNER_MODE_CAPS_S),
NULL,
NULL,
0,
NULL,
NULL,
0
),
Notice the two "sizeof" entries. According to the documentation, the first
one is supposed to have the minimum size needed to identify the request.
The second one is supposed to have the size of the data being read and
written. In both of these entries, BOTH sizes are set to the full
structure, which includes both the KSPROPERTY structure that identifies the
property, and the data to be read/written. I'm conviced the sample is
wrong. Further, if we look at the docuemntation for KSPROPERTY_TUNER_CAPS
and KSPROPERTY_TUNER_MODE_CAPS, in BOTH cases the return value is
documented as a single ULONG.
When we copy the structures above into our own AVStream analog tuner
driver, KSStudio fails to get the properties. Single-stepping through the
code, I see that the upper-level drivers are returning
STATUS_BUFFER_TOO_SMALL.
We know that the analog parts of the Europa sample have never been tested,
so I have no reason to believe the code above is actually correct.
Further, I suspect from other property samples that the first size should
actually be sizeof(KSPROPERTY), and the second size should actually be
sizeof(ULONG).
Does anyone within the sound of my voice have a WORKING AVStream tuner
driver? Can you share with me the definitions of your KSPROPERTY_ITEMS?
--
- Tim Roberts, timr@probo.com
Providenza & Boekelheide, Inc Tag: hotpluggin Tag: 54781
What is the correct way to handle banding in OEMUNI print driver?
Hi,
I am having trouble getting my Unidrv plugin to handle banded bitmaps
correctly. If I set the print to 100 DPI then my ImageProcessing gets 1
whole bitmap per page. However, if I set it to 300 DPI then I first get what
appears to be the top 1/4 of the image. After that I get a few calls to
ImageProcessing indicating blank bands and then that's it. The rest of the
bitmap never appears. No matter how many pages are printed I just get a 1
partial bitmap, a few blanks and then that's it. Is there some argument that
needs to be set to request the next band get sent? Also, how do I know when
the last band for an image is received?
Thanks,
Bob Herzberg Tag: hotpluggin Tag: 54780
using printer driver to send information to the clipboard or another application
Hello,
I would like to write a "printer driver" that prints data into the clipboard
or sends to data via interprocess communication to another application.
Can this be done? Can it be done with vb.net? How easy is it to design and
program? I am completely new to printer device programming, what resources
could i look up?
thank you,
Daniel Tag: hotpluggin Tag: 54779
Updated version of ezusb.sys ? My version is 1.1 from 2001 / 2002 from cypress website
Hello,
can someone tell me if there is a newer / improved version of ezusb.sys then
version 1.1 which can be downloaded from cypress website ? I saw the latest
change was in september 2001.
I googled around and read, that on http://www.devicedriver.com/ they write,
you shouldn't use it for production because of bugs. Is this still valid
today or were the mentioned bugs removed from current cypress code ? Is it
worth buying a license ? What kind of bugs are inside the code ?
Another question on IOCTL_EZUSB_BULK_READ: I often see that as size for the
DataBuffer 0x8000 is used. Increasing it further to 64 KB seems not to work.
Why this limitation ? Is overlapped reading supported ? Any other ideas how
i can further increase bandwidth (currently 17 MB/s, with external IFCLK of
24,576 MHz) ?
Regards,
Martin Tag: hotpluggin Tag: 54778
Enlarging existing PE sections
Hi,
Introduction:
******************************
I am trying to extend an existing section of a PE, in addition to updating
the â??DataDirectoryâ??ies and section RVAs I have to update the resources RVAs
and the import and IAT/INT tables RVAs, as for what was just mentioned
everything works fine. Still, it is not enough for an unmanaged program to
work ( managed assemblies are satisfied with the changes just described ).
The Problem:
******************************
Several assembler opcodes refer directly to the IAT: when executing an
imported API ( of an external DLL such as Kernel32 ) the CALL opcode ( 0xFF15
) refers ( by an RVA ) directly to the IAT, e.g. FF15[four bytes resembling
the RVA to the IAT], this call will not execute properly if a section was
enlarged causing the IAT RVA to change. To fix this all of the RVAs
associated with CALL opcodes should updated as-well, this require doing some
dis-assembling:
1. How can I find the starting points of any unmanaged functions in the
â??.textâ?? section?
2 .How can I distinguish existing assembly code with some other metadata?
3. Is it possible to get from the CPU the assembly opcodes it supports ( and
the size of each )? If so how? Is there a specification or is there some
other way of extracting the supported opcodes directly from the CPU?
Any ideas, suggestions or pointers would be appreciated ( please donâ??t
direct me to the PE structure documentation found in
http://msdn.microsoft.com/... As I am deeply familiar with them.
--
Nadav
http://www.ddevel.com Tag: hotpluggin Tag: 54777
Assembly Code
I am trying to put Assembly to my amd64 Device Driver. But __asm { } is not
accepted by the compiler:
error C4235: nonstandard extension used : '__asm' keyword not supported in
this product
I just build it using the Standard "Windows Server 2003 Checked AMD64 Bit
Build Environment" and the build command.
What should I do to make __asm or generally every non-standard extension
usuable? Tag: hotpluggin Tag: 54774
Linking with a static library
I've got a simplle static library and I want to link the lib file in with
the driver. What do I put in the sources file? TARGETLIBS seems to be only
for linking with dll stubs, or should that work?
error LNK2019: unresolved external symbol _GetModuleExportAddress@8
referenced in function _ImageLoadNotify@12 Tag: hotpluggin Tag: 54758
Data validity and timeliness with PCI bus master transactions
My question is about data validity and timeliness with PCI bus master
transactions.
I have a bus master PCI device. The kernel mode driver programs the DMA
controller on the bus master device to transfer data from the deviceâ??s memory
to the hostâ??s system memory. When the transfer is complete (the deviceâ??s
internal DMA FIFOs empty), the device generates a PCI interrupt to notify the
host. At this point, the ISR schedules a DPC, which performs some handling
of the completed transfer and possibly invalidates the cache for that system
memory region. I would like to know at what point a PCI bus master driver
can expect, with 100% certainty, the transferred data to be in system memory.
Is it ridiculous to imagine that the ISR/DPC processing could happen before
the host PCI bridge can shuffle all of the data into system memory? Am I
being paranoid?
I would like someone who has intimate knowledge of this process to either
ease my concerns, or give me a little direction.
Thank you,
Lou Rohan Tag: hotpluggin Tag: 54752
Migrate to amd64
I am trying to migrate a win32 Driver to a amd64 Driver.
Now I have got a Problem:
VideoDataBuf.hpp(70) : error C2220: warning treated as error - no object
file generated
VideoDataBuf.hpp(70) : warning C4311: 'type cast' : pointer truncation from
'PVOID' to 'long'
VideoDataBuf.hpp(70) : error C4312: 'type cast' : conversion from 'LONG' to
'void *' of greater size
The Code:
PVOID GetBufAddr(LONG lOffset = 0 ) const { return PVOID(lOffset +
LONG(GetSrb()->CommandData.DataBufferAry->Data)); }
How Should I convert this to make it amd64 compliant? Tag: hotpluggin Tag: 54746
Multiple Handles To A PDO
Ok, I'm attempting to do what 100 people have posted about before, but
I'll ask about it anyhow because the answers have seem mixed. I am
trying to basically implement this product:
http://www.mks.zp.ua/shared-serial-ports.php.
I would like to do it by using a filter driver that creates
intermediate buffers with independant pointers in the buffers for each
of the connected com ports.
Meaning:
App1: CreateFile("COM1",...) -> MyFilterDriver[Buffer1] -> \\Serial0
App2: CreateFile("COM1",...) -> MyFilterDriver[Buffer2] -> \\Serial0
App3: CreateFile("COM1",...) -> MyFilterDriver[Buffer3] -> \\Serial0
However, I am running into the problem that I have yet to be
definitively answered: How can I create multiple handles to COM1.
Unfortunately, I have to make this TOTALLY transparent so I can't
change the applications connecting to COM1.
I have tried doing things like "Device->Flags = Device->Flags &
~DO_EXCLUSIVE" to no avail. And APPARENTLY, when you attempt to open
the second connection, no IRPs are sent to the driver at all. NONE,
WHATSOEVER ... I thought this was kind of weird.
Well, I know one of you smart guys out there might have some ideas.
Any advice is appreciated.... ugh, I should have stuck to Windows GDI
coding.
- Bryan Berns Tag: hotpluggin Tag: 54745
DIFX 1.1 automatically starts drivers?
According to the DIFxApp.doc:
"For file system drivers, file system filter drivers and file system
mini-filter drivers, MsiInstallDrivers starts the service supported by the
driver if a system restart is not required to install the driver."
This is the behavior I observe even though my .INF file specifically that I
want the service StartType to be on-demand. Is there a way to let me decide
when to start the service instead of DIFxApp? Tag: hotpluggin Tag: 54741
Console CDRW recording on XP
Hi all,
Anybody can help me find out console application of recording data CD on
windows XP.
Microsoft have a reference that you can use folder:
"C:\Documents and Settings\Administrator\Local Settings\Application
Data\Microsoft\CD Burning". So when I copy my files into that folder they
are ready to be burned on my CD. But how to automate (schedule) my task to
erase and start burning in unattended mode? What command allows me to
replace GUI navigation?
Thank You Tag: hotpluggin Tag: 54740
IOCTL + XP SP2
In year 2000 I developed a simple Virtual Network Driver in order to exchange
messages from/to Microsoft IP to/from my user-space application that
performs my
proprietary data-link protocol (on both serial ports and modems).
IP exchanges messages with my NIC in the standard way and my application
puts/gets messages into/from my NIC through DeviceIoControl() function.
I use the same IOCTL method with 2 different NDIS_OIDs to put messages into
the
NIC and to get messages from the NIC.
#define IOCTL_NDIS_QUERY_GLOBAL_STATS \
_NDIS_CONTROL_CODE(0, METHOD_OUT_DIRECT)
The NIC was developed for Windows NT 4 (conforming to NDIS 4.0 miniport
interface specifications) and it works also on Windows 2000 and on Windows XP.
Now with Windows XP Service Pack 2 my application can correctly put into my
NIC
messages smaller than or equal to 278 bytes; when the application puts into
my
NIC messages larger than 278 bytes the messages that IP receives from NIC
contain "dirty" information.
What is the reason of this behaviour ?
Maybe is it due to some kind of buffer overrun protection in Windows kernel
message ?
Thank you
Paolo Puricelli Tag: hotpluggin Tag: 54729
sizeof ?
Hello. This seems odd to me. I have the following:
#define it "\x0\x0\x0\x0\x0\x0\x0\x0"
If I do:
DbgPrint("The size of it = 0x%x\n", sizeof(it));
This prints out:
The size of it = 0x9
Shouldn't this value be 8?
Thanks,
John Tag: hotpluggin Tag: 54725
WPA question
Hi,
I have implemented EAP-TLS and also WPA-PSK.
Now ofcourse I want to use them together (no PSK)
I'm not sure what I should use as the PMK from the EAP-TLS.
Is this described somewhere?
EAP-TLS has nothing to do with this and I havn't found that the 802.11i doc
describes it either (section 8.5.1.2 talkes about it but not enough)
regards
Niklas Tag: hotpluggin Tag: 54723
Not able to communicate using virtual com port
Hello all,
I am using a Triton board with linux-2.4.19-rmk7-pxa1 on it. I have
compiled with serial-usb emulation support. When I plug in the usb
cable with Windows 2000 as the host, the device is recognised and the
driver usbser.sys is properly loaded. And in the device manager, one
more COM port is shown with drivers installed properly.
From the host side I am getting the requests - GET_LINE_CODING,
SET_LINE_CODING, SET_CONTROL_LINE_STATE. For GET_LINE_CODING, I send a
Linecoding structure. (115200, 0, 0, 8). For SET_LINE_CODING, I read
the data into FIFO and then send a zero-length packet. For
SET_CONTROL_LINE_STATE I just send a zero-length packet.
But when I try to open the hyperterminal with that COM port, it gets
disconnected and I am not able to communicate.
So, I wanted to know what must be our response to these requests.
Thanks for your time.
Regards,
mohan Tag: hotpluggin Tag: 54722
UNIDRV glyph character codes
Hi
I have developed a PCL printer driver using UNIDRV and would like downloaded
fonts to have glyph character codes associated with them which match the
ASCII value of the original character. It seems that the *DLSymbolSet: should
do this but it does not seem to work.
Is there something which causes this directive to be ignored?
What values are allowed for DLSymbolSet:? PC_8 and ROMAN_8 are accepted are
there others?
Thanks Tag: hotpluggin Tag: 54721
How to add PID filter function in BDA driver ?
Hi,
I want to develop the standard BDA driver for USB1.1 device. But usb1.1
bandwidth no enough to transfer all programs of one frequency, so I need to
add PID-filter function in driver to notify the USB firmware to filter
unnecessary programs. I look for DDK and find a BDA
property---'KSPROPSETID_BdaPIDFilter', it seem to match up my idea. But how
to use the 'KSPROPSETID_BdaPIDFilter' property in BDA driver ? If it isn't
for PID-filter purpose, has other method for PID-filter function in BDA
driver ? (If use the proprietary property, the standard BDA viewer can't
play the driver. )
Thanks,
ShaqLee. Tag: hotpluggin Tag: 54719
MmProbeAndLockPages usage
My driver is sending an IRP to another driver using IoCallDriver. For this
I am allocating a MDL which describes a buffer in nonpaged pool allocated
using ExAllocatePoolWithTag.
Then I call MmBuildMdlForNonPagedPool. After all this, is it necessary to call
MmProbeAndLockPages? I know there is no need to lock the pages. But is it
necessary to check the access rights? Do pages in nonpaged pool have all
access rights?
...Mani Tag: hotpluggin Tag: 54717
1394 Device : Bus reset while installing driver
Hello list!
I am developing device driver for 1394 device and I faced somewhat
unusual while installing the driver.
My environment is as follows.
OS : Windows2000 SP4
OHCI 1394 : TI chipset
two 1394 camera
First, if I use one camera, there is no problem.
After I connected one camera(first) and install driver manual,
I unplug the device
and I connect another camera(second) and install driver manually.
Now, I reconnect the first camera again.
Then, the Bus Reset routine of the driver of the second device
doesn't called.
So, the second driver is not controlled properly, because the
generation count is not correct.
But, if I unplug the second device and replug it,
it's Bus Reset routine is called.
And all cameras working properly.
I don't know why this situation is occurred.
I think the sequence of the driver installation is same
when I install the driver manually and when I replug.
I tried to call REQUEST_BUS_RESET when the SRB_INITIALIZATION_COMPLETE
is called, but the result is same.
What am I supposed to do?
Any suggestions will be appreciated.
- James. Tag: hotpluggin Tag: 54713
WDM Support for Old School ISA Card
Hello:
Apologies if this question has been answered before--I'm sure it has. I'm
writing a WDM driver for a legacy ISA board. I haven't found any substantial
documentation or example that shows how to do it. Is there a good example
program floating around that shows how to acquire resources for a non-PnP
ISA board?
Thanks,
Phil
Chicago Tag: hotpluggin Tag: 54703
ISA Support in WDM
Hello:
I bet this question is as old as the hills so I apologize if it's been
answered many times before. I'm programming a WDM driver for a legacy ISA
device. I'm using Compuware DriverWorks and I'm not sure where and how to
implement the acquisition of resources. I found some tantalizing queries and
responses on the web, but nothing substantial. My question: the DriverWorks
library provides the objects KResourceRequest and KResourceAssignment. Are
these to be used in the device object constructor or in the
...Device::OnStartDriver IRP response function? Are there any good example
programs floating around? (I'll take a straight DDK example too.)
Thanks for reading and any help you can provide.
Phil Garofalo
Chicago Tag: hotpluggin Tag: 54702
DIFx Tools Version 1.1 Support Multiple Languages and 64-bit Drivers
------=_NextPart_0001_3D289A55
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
DIFx Tools Version 1.1 Support Multiple Languages and 64-bit Drivers
Driver Install Frameworks (DIFx) provides infrastructure and tools to
simplify device and driver installation for both developers and users. DIFx
tools includes the Driver Package Installer (DPInst) and the Driver
Installation Frameworks for Applications (DIFxApp).
Version 1.1 of DIFx tools is now available for download from WHDC. Version
1.1 provides the following new capabilities:
Ability to create localized driver installation packages in 24 languages:
Arabic (Saudi Arabia) Spanish - Modern Sort (Spain) Norwegian
(Bokmål) (Norway)
Chinese (People's ROC) Finnish (Finland) Dutch
(Netherlands)
Chinese (Taiwan) French (France)
Polish (Poland)
Czech (Czech Republic) Hebrew (Israel)
Portuguese (Brazil)
Danish (Denmark) Hungarian (Hungary)
Portuguese (Portugal)
German (Germany) Italian (Italy)
Russian (Russia)
Greek (Greece) Japanese (Japan)
Swedish (Sweden)
English (United States) Korean (Korea)
Turkish (Turkey)
Ability to create driver installation packages for Itanium-based systems.
Support for x64-based platforms is planned for a future version of the DIFx
tools. A Beta version of these tools is available through the DIFx Tools
Beta Program. To enroll, visit http://betaplace and log in with guest ID
difxbeta.
Ability to create driver installation packages for file system minifilters
(file system filter drivers developed to the Filter Manager model).
Support for the next version of Microsoft Windows, codenamed "Longhorn."
Support for NDIS IM drivers.
Ability to fine-tune the user installation experience with new
MsiDriverPackages table flags:
Suppress the "Attach device" prompt displayed by DIFxApp if no matching
device could be found for a Plug and Play driver that was just installed.
Suppress creation of an Add/Remove Programs entry for the driver package.
New Windows Installer XML (WiX) library, DIFxApp.wixlib, for developers who
use WiX to create setup programs.
New DPInst return code that indicates status of a driver installation to a
calling application, to help support IT deployment scenarios. Status
information includes the number of driver packages that were successfully
installed and whether a system restart is necessary.
Download DIFx tools version 1.1:
http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx
DIFx Resources on WHDC:
http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx
FAQ?s are available at :
http://www.microsoft.com/whdc/driver/install/DIFxFAQ.mspx
Also Newly Released ...
Device Installation FAQ
Download available at :
http://www.microsoft.com/whdc/driver/install/installFAQ.mspx
This FAQ answers frequently asked questions about device installation on
the Microsoft Windows family of operating systems. Driver developers can
use the information in this FAQ to better understand and solve problems
related to installing devices and drivers on PCs running Windows.
The information in this FAQ applies to the following versions of Windows:
Microsoft Windows codenamed "Longhorn"
Microsoft Windows Server? 2003
Microsoft Windows XP
Microsoft Windows 2000
Included in this FAQ:
General questions about Plug and Play
Inbox drivers
INF files
Configuration Manager and SetupDi routines
Coinstallers
User Interaction
System-file protection
Digital signatures
Service-side installation
Troubleshooting installation
Windows 9x questions
[MS] Jeff McCashland
jeffm@online.microsoft.com
This posting is provided "AS IS" with no warranties, and confers no rights.
------=_NextPart_0001_3D289A55
Content-Type: text/x-rtf
Content-Transfer-Encoding: 7bit
{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fprq2\fcharset0 MS Sans Serif;}{\f1\fnil\fcharset2 Symbol;}}
\viewkind4\uc1\pard\f0\fs20 DIFx Tools Version 1.1 Support Multiple Languages and 64-bit Drivers
\par
\par Driver Install Frameworks (DIFx) provides infrastructure and tools to simplify device and driver installation for both developers and users. DIFx tools includes the Driver Package Installer (DPInst) and the Driver Installation Frameworks for Applications (DIFxApp).
\par
\par Version 1.1 of DIFx tools is now available for download from WHDC. Version 1.1 provides the following new capabilities:
\par
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 Ability to create localized driver installation packages in 24 languages:
\par \pard
\par Arabic (Saudi Arabia) Spanish - Modern Sort (Spain) Norwegian (Bokm\'e5l) (Norway)
\par Chinese (People's ROC) Finnish (Finland) Dutch (Netherlands)
\par Chinese (Taiwan) French (France) Polish (Poland)
\par Czech (Czech Republic) Hebrew (Israel) Portuguese (Brazil)
\par Danish (Denmark) Hungarian (Hungary) Portuguese (Portugal)
\par German (Germany) Italian (Italy) Russian (Russia)
\par Greek (Greece) Japanese (Japan) Swedish (Sweden)
\par English (United States) Korean (Korea) Turkish (Turkey)
\par
\par
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 Ability to create driver installation packages for Itanium-based systems.
\par \pard
\par Support for x64-based platforms is planned for a future version of the DIFx tools. A Beta version of these tools is available through the DIFx Tools Beta Program. To enroll, visit http://betaplace and log in with guest ID difxbeta.
\par
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 Ability to create driver installation packages for file system minifilters (file system filter drivers developed to the Filter Manager model).
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 Support for the next version of Microsoft Windows, codenamed "Longhorn."
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 Support for NDIS IM drivers.
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 Ability to fine-tune the user installation experience with new MsiDriverPackages table flags:
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li720 Suppress the "Attach device" prompt displayed by DIFxApp if no matching device could be found for a Plug and Play driver that was just installed.
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li720 Suppress creation of an Add/Remove Programs entry for the driver package.
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 New Windows Installer XML (WiX) library, DIFxApp.wixlib, for developers who use WiX to create setup programs.
\par \pard
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 New DPInst return code that indicates status of a driver installation to a calling application, to help support IT deployment scenarios. Status information includes the number of driver packages that were successfully installed and whether a system restart is necessary.
\par \pard
\par
\par Download DIFx tools version 1.1: http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx
\par DIFx Resources on WHDC: http://www.microsoft.com/whdc/driver/install/DIFxtls.mspx
\par FAQ\rquote s are available at : http://www.microsoft.com/whdc/driver/install/DIFxFAQ.mspx
\par
\par Also Newly Released ...
\par
\par Device Installation FAQ
\par
\par Download available at : http://www.microsoft.com/whdc/driver/install/installFAQ.mspx
\par
\par This FAQ answers frequently asked questions about device installation on the Microsoft Windows family of operating systems. Driver developers can use the information in this FAQ to better understand and solve problems related to installing devices and drivers on PCs running Windows.
\par
\par The information in this FAQ applies to the following versions of Windows:
\par Microsoft Windows codenamed "Longhorn"
\par Microsoft Windows Server\'99 2003
\par Microsoft Windows XP
\par Microsoft Windows 2000
\par
\par Included in this FAQ:
\par \pard{\pntext\f1\'B7\tab}{\*\pn\pnlvlblt\pnf1\pnindent0{\pntxtb\'B7}}\fi-360\li360 General questions about Plug and Play
\par {\pntext\f1\'B7\tab}Inbox drivers
\par {\pntext\f1\'B7\tab}INF files
\par {\pntext\f1\'B7\tab}Configuration Manager and SetupDi routines
\par {\pntext\f1\'B7\tab}Coinstallers
\par {\pntext\f1\'B7\tab}User Interaction
\par {\pntext\f1\'B7\tab}System-file protection
\par {\pntext\f1\'B7\tab}Digital signatures
\par {\pntext\f1\'B7\tab}Service-side installation
\par {\pntext\f1\'B7\tab}Troubleshooting installation
\par {\pntext\f1\'B7\tab}Windows 9x questions
\par \pard
\par [MS] Jeff McCashland
\par jeffm@online.microsoft.com
\par
\par This posting is provided "AS IS" with no warranties, and confers no rights.
\par
\par }
------=_NextPart_0001_3D289A55-- Tag: hotpluggin Tag: 54698
Compact PCI Embedded XP
I have 2 Compact PCI boards.
Is it possible to map Main Memory of Board A to PCI address space so that I
can access it form Board B in Windows XP / XP embedded environment.
What steps I have to follow?
Thanks,
Samir Tag: hotpluggin Tag: 54697
How to ask TDI set QOS bits
Hi,
I am writting a network driver that uses TDI to send packets. I couldn't
find a way to ask TDI set the QOS bits for me. The only thing I found in MSDN
is that I can set using Options parameter. But there is no further
information about Options parameter and its format.
Any hints?
Thanks, Tag: hotpluggin Tag: 54695
Legacy serial mouse for Win2000
I have seriously managed to confuse myself. I have what I think is a
simple task. I have a non-PnP serial mouse, which is NOT supported by
serenum. All I want to do is install it on COM1.
Reading this, and the OSR, groups, I have not been able to get my head
around the right approach. I have successfully written 3 PCI WDM
drivers. I have spent some time with Toaster and Serenum.
Since my mouse does NOT respond to the serial PnP protocol, am I right
that I cannot use serenum or sermouse?
My mouse won't return the 'M' or 'B' when sermouse asks for; does that
mean that sermouse won't work as-is for my device?
Other than the durn 'M' stuff, shouldn't sermouse work, assuming that
my mouse behaves "like" a mouse? If I could modify sermouse to create
MySermouse.sys, could I somehow attach MySermouse.sys to the serial
port device stack and then be in business?
I have read Mr Oney's "Driver's for Serial-Attached Devices". I keep
trapping myself in thinking that my situation doesn't fit because my
device is just a mouse that won't PnP, and not some new thing. I keep
waffling on whether I should create a root-enumerated driver that
attaches to the serial.sys device stack, or a root-enumerated driver
that somehow opens and uses the serial port, or a bus driver that
creates some sort of PDO that is associated with my mouse and its
serial port some way.
I must say, this has forced me to look more closely at the W2k driver
architecture. The OSR class, Mr Oney's book, the DDK docs, and the
web have provided me with MUCH entertainment. I, however, have
managed to confuse myself...
Thanks for any advice.
John Reilly.
Northrop Grumman/Sperry Marine. Tag: hotpluggin Tag: 54692
Error in PnP application with Rev_00 PCI ID - need help
I am bery new to this PnP API world and will need help in troubleshooting a
critical issue.
I have a custom made application that uses UPDATEDRIVERFORPLUGANDPLAYDEVICES
to install pnp video drivers.
Application is invoked from a batch file and usage is c:\ <APP> <inf file
with full path with driver files> <PCI h/w id>.
PCI card is scanned with another utility and actual scanned pnp ID for the
pci card to be installed is passed to the application
along with the inf file as arguments.
Application goes through the PnP installation process without any user
intervention.
The application works perfectly fine without any problem except for a
ATI-X300 card that has rev_00, .
The moment I try to install a ATi X300 card with rev_00, it throws me a
dialog that says: "You must restart your computer before the setting will
take effect. Do you want to restart your computer now ? Y/N " . For all other
cards, it goes silently.
Installation of the driver goes fine If I respond as "Yes" or say no and
reboot later.
Issue is I do not want the dialog which anyway does not come for other cards.
Now, I want to know:
Is there something specific in the MS PnP installation algorithim about pnP
id that has Rev_00 ?
Is there a way to stop this dialog by setting some registry ?
Which API library should I look into in order to change the behavior so that
I do not get the dialog?
I like to stop this dialog since the system will be rebooted at the end of
other remaining task.
Any kind of help or pointer to information will be very helpful.
thanks in advance,
Snippet of the custom application:
UPDATEDRIVERFORPLUGANDPLAYDEVICES pUpdateDriverForPlugAndPlayDevices;
hNewDevDll = LoadLibrary("newdev.dll");
pUpdateDriverForPlugAndPlayDevices = (UPDATEDRIVERFORPLUGANDPLAYDEVICES)
GetProcAddress(hNewDevDll, "UpdateDriverForPlugAndPlayDevicesA");
bRet = pUpdateDriverForPlugAndPlayDevices(NULL, szHardwareId, szINFPath,
INSTALLFLAG_FORCE, pbReboot);
Sample execution usage:
(one line)
UpdatePnP c:\driver\video\MyDriver.inf
PCI\VEN_1002&DEV_5B60&SUBSYS_04021002&REV_00 Tag: hotpluggin Tag: 54691
BUGCODE_USB_DRIVER with parameter 1 == 0x5?
I'm working on a USB driver and one time, on a rarely-used test machine
several days after the last time my device was attached, a user shutting down
the computer encountered a BSOD with BUGCODE_USB_DRIVER with parameter 1 ==
0x5 as the computer started to shut down. The online list of bug codes
(http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ddtools/hh/ddtools/BCIntro_f55acfed-3296-4e84-8885-c3162fd0ddbf.xml.asp)
doesn't list 0x5 as a possibility for parameter 1 for bug code 0xFE
(BUGCODE_USB_DRIVER), and DDK 2600.1106 doesn't list 0xFE at all in
ddtools.chm. The other parameters were 0x81F200E0, 0x80862442, and
0x81F315B0. My driver does not appear to be in the fault stack, but it looks
like I must have corrupted something somewhere along the line (maybe as I
shut down my driver or my device?). So far this crash isn't reproducible but
I'd like to know a little more about it if I can. Thanks in advance for any
insights.
-Scot Tag: hotpluggin Tag: 54689
IRP with NOCACHE
Hi,
I tried to create a local IRP and send it down to read the data, when i get
an IRP with NOCACHE is set(paging_io not set).
But, IoCallDriver is always failing and returning me a status of
INVALID_USER_BUFFER.
Why does it happen? Is it not possible to create a irp to read, when i get
an IRP with NOCACHE set(paging_io not set).
With Thanks,
A.Ilamparithi. Tag: hotpluggin Tag: 54685
Default USB interface
Dear ALL,
I am working for company, which creates high-speed USB devices using
Cypress microcontrollers. To reprogram Cypress firmware I need to send
it several specially formatted USB control requests. My goal is to
develop universal application and may be driver (if unavoidable), to
reflash our devices during testing and in the field. It would be nice
to have such application because firmware update implemented by
Cypress microcontroller in hardware and do not depend on whatever junk
we loaded it with previous time.
I figured out, that all USB devices support interface with GUID
{a5dcbf10-6530-11d2-901f-00c04fb951ed}, which is
GUID_DEVINTERFACE_USB_DEVICE. Is there any way to get anything useful
out of this device interface? I figured out, that it is exported by
usbhub.sys driver and get created even if no driver loaded for USB
device. I can open this device with CreateFile() Win32 API call, but
that is all. I tried to open this link from one of my drivers and use
the object returned by ObReferenceObjectByHandle() as lower physical
device object to send URBs to, but it didn't work.
As a last resort, I can develop USB filter driver if anything simple
would not work for me, but I am not sure if I will get access to USB
device without driver loaded.
Thanks for reading my message :) I will really appreciate any help on
the issue.
Thanks for your time,
With best regards,
Vladimir S. MIrgorodsky Tag: hotpluggin Tag: 54672
Performance problems 1394bus.sys
Any suggestion on the following topic please:
I am working on a project for a motion control architecture based on the 1394
bus. We are using the Windows XP 1394 driver stack and built our own custom
function driver. Since the application is timing critical we developed methods
to see what is going on in time inside this driver. We need continuous
isochronous transport so we are reattaching buffers inside the driver.
Strangely enough the time needed for reattaching (and especially detaching)
buffers seems to increase over time. From about 30us for 100 buffers at the
beginning of the transfer to 150us after a few seconds. Size of the buffers
does not seem to matter, the number of buffers, however, does.
This is a serious issue for us, since reattaching buffers now claims a lot of
our system resources (CPU load). Is this a known problem? Is there a way to
avoid this problem? What causes the 1394bus driver to spend so much resources
on detaching / attaching? I will be glad to supply additional information if
needed.
Thanks in advance!
--
Jack Goossen Tag: hotpluggin Tag: 54667
Trying to replace NdisMAllocateMapRegisters() with NdisMInitializeScatterGatherDma()
So I figured that I would call NdisMInitializeScatterGatherDma() as the docs say that should
let us get shared memory. But I get zero shared memory when I use NdisMInitializeScatterGatherDma()
Here is my setup:
====================================
#ifdef MAPREGISTERS
Status = NdisMAllocateMapRegisters(pAdapter->D100AdapterHandle,
0,
NDIS_DMA_32BITS,
// pAdapter->NumMapRegisters,
1,
pAdapter->MaxPhysicalMappings);
#else
Status = NdisMInitializeScatterGatherDma(
pAdapter->D100AdapterHandle,
FALSE,
4096);
#endif
====================================
When I undefine MAPREGISTERS I don't get any shared memory.
Yes I set the bus master bit in NdisMSetAttributesEx()
Yes I get NDIS_STATUS_SUCCESS from either call.
Any ideas? Tag: hotpluggin Tag: 54658
How to include space in directory path for launching help in a MFC program
Hi,
I have a MFC program. I have a help file (.chm) which I launch when
the user clicks on Help option. It works fine if I put the .chm file
in a directory path which has no spaces. However, I do want to put
this file under "Program Files\....." If I put under this directory
path, it won't find the .chm file and the help will not launch.
How do I include a space in the directory path ?
Thanks,
_SK Tag: hotpluggin Tag: 54655
UNIDRV add custom paper sizes
I am attempting to add custom paper sizes to a UNIDRV printer driver from a
ui plug-in dll. Adding the paper sizes is straightforward usig AddForm.
However the array of paper size OPTPARAM does not include this new size until
the document property sheet is closed and then re-opened. I would like to
have this array re-initialized with the newly added form without having to
close and re-open the dialog.
I have attempted to manually reallocate the array and add a new OPTPARAM to
the array pointed to by the pOptParam member of the paper size OPTTYPE
structure, although this seems to work it does not save the new form in the
devmode correctly.
Any ideas on other ways to accomplish this task? Tag: hotpluggin Tag: 54652
PnP INF File Question
I have a VERY strange situation I need to solve. We mfg a serial hardware
device for downloading data out of a reader. The downloader contains PnP
code; when you place the device on the serial port, reboot or run the add
device wizard, everything works fine.
However, this PnP device does NOT require a driver, so we wrote the below
INF file which seems to work fine. There is one catch I would like to solve,
and perhaps someone knows how to do this.
When we install the INF in the INF folder, we would expect the process to
NOT query the end-user. This is NOT the case; the process is querying the
user in all cases. Why is that? Is there something we need in our INF, or is
it because we do not have a signed driver that is required?
We would really like to avoid having the user have to constantly browse to
the INF when it is already local to their PC. Any help would be most
appreciated. Thanks!
[Version]
Signature="$WINDOWS NT$"
Class=Downloader
ClassGUID={72CB8A7E-7BB7-49bd-A195-7686CA8C2CFD}
Provider=%TKS%
DriverVer=06/05/2000,2.00.0000
[ClassInstall32]
Addreg=DwnldrClassReg
[DwnldrClassReg]
HKR,,,0,%ClassName%
HKR,,Icon,,-23
[Manufacturer]
%TKS%=Standard
[Standard]
%DirectDevice.DeviceDesc%=Direct_Device, SERENUM\TKS0001
[Direct_Device.NT]
[Direct_Device.NT.Services]
AddService = , %SPSVCINST_ASSOCSERVICE%,
[Direct_Device.NT.HW]
AddReg=DeviceEnumReg
[DeviceEnumReg]
HKR,,%SerialNumber%,
[Strings]
TKS="TimeKeeping Systems, Inc."
SPSVCINST_ASSOCSERVICE=0x00000002
ClassName="Downloader"
DirectDevice.DeviceDesc="TKS Direct Downloader"
SerialNumber="SerialNumber" Tag: hotpluggin Tag: 54650
Where I can download DDK?
Just a moment - don't jump on me please...
The "which DDK" page
http://www.microsoft.com/whdc/driver/foundation/WhichDDK.mspx
says that SP1 beta DDK available to MSDN subscribers, but it doesn't seem to
be in subscriber downloads.
Looking now under Universal downloads, Platform Tools, SDKs,DDKs/ Windows
server 2003 - and there is only one DDK, Server 2003, ver. 3790.
SO, how MSDN subscribers are supposed to get Server 2003 SP1 beta DDK?
Regards,
Pavel Tag: hotpluggin Tag: 54646
Hello,
Could some one please guide me as to what are the device driver requirements
for supporting PCI hotplug events.