Install Printer Driver with my print processor in NT
Hi,
I have my own print processor. I am installing it using
AddPrintProcessor.
Now I am using UNIDRV.DLL, UNIDRVUI.DLL for AddPrinterDriver. These
files are not installed in some version of NT by default.
So what should I do? I can copy this files to PrinterDriverDirectory.
But for all OS with various service pack these files may be different.
So this is not good approach, that I am thinking. Also in groups I
also got the help that it is not recommended.
So I am trying to use rundll32 printui.dll,PrintUIEntry... But there
is no option to select PrinterProcessor. So how can I change the
PrinterProcessor to my own automatically.
My Printer Processor is testpr, testpr.dll.
Can you suggest me what should I do for automatically installation?
Thanks,
Dhaivat Shah Tag: 64-bit PCI mem xfer resolved Tag: 33213
Installable driver problem
Hallo,
I'm writing an installable driver for recording purposes, and I have
some strange problems: I've written a dummy version, thinking to add
functionalities in a second time, but I cannot install it: the 'new
hardware wizard' fails with the message 'incorrect parameter'.
The only message reaching my driver is DRV_LOAD, and I only return 1,
with no other operations.
After the failed installation every application using sound fails to
initialize with exception 0xC0000005, so I'm thinking of some access
violation, but I really cannot figure where I'm doing wrong.
Does somebody have any idea ?
Thank you,
Marco
PS here is the OEMSETUP.INF and the driver code:
//////////////////////////////////////////////////////////
OEMSETUP
/////////////////////////////////////////////////////////
[Source Media Descriptions]
1 = "RecorderTest sound driver" , TAGFILE = RecorderTest_disk
[Installable.Drivers]
RecorderTest = 1:RecorderTest.dll, "wave,mixer", "RecorderTest sound
driver" ,,,
[RecorderTest ]
1:RecorderTest.dll
//////////////////////////////////////////////////////////////////
// RecorderTest
//////////////////////////////////////////////////////////////////
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
return TRUE;
}
LRESULT DriverProc(DWORD dwDriverId, HDRVR hdrvr, UINT msg,
LONG lParam1, LONG lParam2)
{
DWORD dwRes = 0L;
switch (msg) {
case DRV_LOAD:
// Sent when the driver is loaded. This is always
// the first message received by a driver.
dwRes = 1L; // returns 0L to fail
break;
case DRV_FREE:
// Sent when the driver is about to be discarded.
// This is the last message a driver receives
// before it is freed.
dwRes = 1L; // return value ignored
break;
case DRV_OPEN:
// Sent when the driver is opened.
dwRes = 1L; // returns 0L to fail
break; // value subsequently used
// for dwDriverId.
case DRV_CLOSE:
// Sent when the driver is closed. Drivers are
// unloaded when the open count reaches zero.
dwRes = 1L; // returns 0L to fail
break;
case DRV_ENABLE:
// Sent when the driver is loaded or reloaded and
// when Windows is enabled. Install interrupt
// handlers and initialize hardware. Expect the
// driver to be in memory only between the enable
// and disable messages.
dwRes = 1L; // return value ignored
break;
case DRV_DISABLE:
// Sent before the driver is freed or when Windows
// is disabled. Remove interrupt handlers and place
// hardware in an inactive state.
dwRes = 1L; // return value ignored
break;
case DRV_INSTALL:
// Sent when the driver is installed.
dwRes = DRVCNF_OK; // Can also return
break; // DRVCNF_CANCEL
// and DRV_RESTART
case DRV_REMOVE:
// Sent when the driver is removed.
dwRes = 1L; // return value ignored
break;
case DRV_QUERYCONFIGURE:
// Sent to determine if the driver can be
// configured.
dwRes = 0L; // Zero indicates configuration
break; // NOT supported
case DRV_CONFIGURE:
// Sent to display the configuration
// dialog box for the driver.
dwRes = DRVCNF_OK; // Can also return
break; // DRVCNF_CANCEL
// and DRVCNF_RESTART
default:
// Process any other messages.
return DefDriverProc (dwDriverId, hdrvr,
msg, lParam1, lParam2);
}
return dwRes;
} Tag: 64-bit PCI mem xfer resolved Tag: 33208
How to associate an Ndis Protocol Handle with a Binding Handle?
What I'd like to do is have several instances of a protocol driver
registered with NDIS. The problem I am having is associating the
NdisProtocolHandle (returned from NdisRegisterProtocol()) with the
BindingContext given to ProtocolBindAdapter(). Since NdisRegisterProtocol()
does not take a user context as a parameter and there is no user context
passed into ProtocolBindAdapter(), it is impossible to tell which binding
context belongs to which protocol handle. Any ideas?
((&-< Tag: 64-bit PCI mem xfer resolved Tag: 33207
Installable driver problem
[my newsreader is hiccuping today, sorry if this post is doubled]
Hallo,
I'm writing an installable driver for recording purposes, and I have
some strange problems: I've written a dummy version, thinking to add
functionalities in a second time, but I cannot install it: the 'new
hardware wizard' fails with the message 'incorrect parameter'.
The only message reaching my driver is DRV_LOAD, and I only return 1,
with no other operations.
After the failed installation every application using sound fails to
initialize with exception 0xC0000005, so I'm thinking of some access
violation, but I really cannot figure where I'm doing wrong.
Does somebody have any idea ?
Thank you,
Marco
PS here is the OEMSETUP.INF and the driver code, i think it's the
plainest possible:
//////////////////////////////////////////////////////////
OEMSETUP
/////////////////////////////////////////////////////////
[Source Media Descriptions]
1 = "RecorderTest sound driver" , TAGFILE = RecorderTest_disk
[Installable.Drivers]
RecorderTest = 1:RecorderTest.dll, "wave,mixer", "RecorderTest sound
driver" ,,,
[RecorderTest ]
1:RecorderTest.dll
//////////////////////////////////////////////////////////////////
// RecorderTest
//////////////////////////////////////////////////////////////////
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved)
{
return TRUE;
}
LRESULT DriverProc(DWORD dwDriverId, HDRVR hdrvr, UINT msg,
LONG lParam1, LONG lParam2)
{
DWORD dwRes = 0L;
switch (msg) {
case DRV_LOAD:
// Sent when the driver is loaded. This is always
// the first message received by a driver.
dwRes = 1L; // returns 0L to fail
break;
case DRV_FREE:
// Sent when the driver is about to be discarded.
// This is the last message a driver receives
// before it is freed.
dwRes = 1L; // return value ignored
break;
case DRV_OPEN:
// Sent when the driver is opened.
dwRes = 1L; // returns 0L to fail
break; // value subsequently used
// for dwDriverId.
case DRV_CLOSE:
// Sent when the driver is closed. Drivers are
// unloaded when the open count reaches zero.
dwRes = 1L; // returns 0L to fail
break;
case DRV_ENABLE:
// Sent when the driver is loaded or reloaded and
// when Windows is enabled. Install interrupt
// handlers and initialize hardware. Expect the
// driver to be in memory only between the enable
// and disable messages.
dwRes = 1L; // return value ignored
break;
case DRV_DISABLE:
// Sent before the driver is freed or when Windows
// is disabled. Remove interrupt handlers and place
// hardware in an inactive state.
dwRes = 1L; // return value ignored
break;
case DRV_INSTALL:
// Sent when the driver is installed.
dwRes = DRVCNF_OK; // Can also return
break; // DRVCNF_CANCEL
// and DRV_RESTART
case DRV_REMOVE:
// Sent when the driver is removed.
dwRes = 1L; // return value ignored
break;
case DRV_QUERYCONFIGURE:
// Sent to determine if the driver can be
// configured.
dwRes = 0L; // Zero indicates configuration
break; // NOT supported
case DRV_CONFIGURE:
// Sent to display the configuration
// dialog box for the driver.
dwRes = DRVCNF_OK; // Can also return
break; // DRVCNF_CANCEL
// and DRVCNF_RESTART
default:
// Process any other messages.
return DefDriverProc (dwDriverId, hdrvr,
msg, lParam1, lParam2);
}
return dwRes;
} Tag: 64-bit PCI mem xfer resolved Tag: 33206
Queued spinlock mystery !!!
< Do you know how the queued spinlock works? It maintains
< a linked list of
< KLOCK_QUEUE_HANDLEs, where the list tail is the
< acquisitor who runs, others are
< acquisitors who wait.
< KLOCK_QUEUE_HANDLE is like Irql variable for usual
< spinlocks.
< You must have at least 1 KLOCK_QUEUE_HANDLE per CPU,
< and use
< KeGetCurrentProcessorNumber to access the correct one,
< with raising on
< DISPATCH_LEVEL beforehand.
I don't understand how queuedspinlocks works anymore. I
thought that there
was only one queue and all cpus were locking themselve
with that queue ex:
KLOCK_QUEUE_HANDLE
|
----------------
| Acquire lock | <----- cpu #0
----------------
----------------
| Acquire lock | <----- cpu #2
----------------
----------------
| Acquire lock | <----- cpu #1
----------------
----------------
| Acquire lock | <----- cpu #3
----------------
If this is not the case but every cpu must have his
KLOCK_QUEUE_HANDLE how
can cpu #2 knows that it must wait because cpu 0 have the
lock if this
lock was putted into the KLOCK_QUEUE_HANDLE of cpu #0 ?
Can someone at Microsoft can explain to me how queued
spinlock really works ?
Thanks Tag: 64-bit PCI mem xfer resolved Tag: 33204
Usbscan.sys for multi interface installation in windows 98 ?
I am a software developer for multifunction printer
driver. Here is my problems:
I can't successfully install multifunction printer driver
(composite device, and use usbprint.sys + usbscan.sys)
in Windows 98/SE. The F/W in our device reports multi
interfaces to PC host. Vid_xxxx&Pid_yyyy&MI_00 is printer
interface and Vid_xxxx&Pid_yyyy&MI_01 is scanner
interface.
I referenced the "Building for Windows 98 and Windows 98
SE" section in usbscn9x.htm in Windows Server 2003 DDK.
I follow the DDK's instructions to do some fix, restart my
computer in Windows 98, and use 98 DDK to build the
sample. But it fails.
1. What's wrong with it?
2. Or ... anybody can give me usbscn9x.sys binary
directly?
3. I may doubt the problem may occur in .inf. Does the
scanner .inf has any special writing for multi interface
in Windows 98/SE?
Regards, Tag: 64-bit PCI mem xfer resolved Tag: 33199
need a better method to install ps/2 mouse filter
Installing the mouse filter example from the ddk (moufiltr) removes
whatever driver the user had installed for their mouse and overrides
it with the ps/2 mouse driver. For instance, it is undesirable to
replace trackpoint drivers with the less optimal ps/2 mouse driver
when all we want to do is get a mouse filter installed. Is there a
better way to value add a mouse filter driver? It doesn't matter if it
can't get logo or requires programatically updating the registry; the
end user experience is what counts here. Tag: 64-bit PCI mem xfer resolved Tag: 33198
How to send the vendor command via the USBprint.sys
Hello...
I try to send the vendor command
(IOCTL_USBPRINT_VENDOR_GET_COMMAND)in the user mode AP via
the usbprint.sys. In the DDK, it tell the programmer to
include the ioctl.h, but there's no defination in the
include file. Who can tell me how to do it?
Thank you very much.
Kent 9/29/2003 Tag: 64-bit PCI mem xfer resolved Tag: 33196
What is power up ??
hello
if the device is in DevicePower D3 state.i mean device is
in sleeping state, how do i wake up the
device. i mean when a ioctl is called,how to power up &
complete the task.what are the basic step to power up in a
deviceiocontrol.can anyone guide me getting the logic
behind power up.
Thanks in advance.
pavan Tag: 64-bit PCI mem xfer resolved Tag: 33195
how to remove/unplug a usb disk?
Is there any way to remove/unplug the usb disk without the os warning(like
use mouse to click the tray icon to remove it)?
Does any SetupDixxx function to do this? Tag: 64-bit PCI mem xfer resolved Tag: 33193
code_seg and MSVC 7.0, 7.1...
Is there any way to control the code segment an expanded inline class member
or templated function is placed into? For the code below, all functions but
ccc() are placed into _TEXT. Only ccc() is placed into CCC.
Yes, this is for driver development.
Cheers,
Nick
#include <stdio.h>
#define LPCSTR char*
struct A
{
#pragma code_seg(push, "AAA")
LPCSTR aaa() { return "aaa aaa aaa"; }
#pragma code_seg(pop)
#pragma code_seg(push, "BBB")
template<class T>
T bbb(T t) { return t; }
#pragma code_seg(pop)
};
#pragma code_seg(push, "CCC")
__forceinline LPCSTR ccc() { return "ccc ccc ccc"; }
#pragma code_seg(pop)
#pragma code_seg(push, "DDD")
template<class T>
T ddd(T t) { return t; }
#pragma code_seg(pop)
void main()
{
A a;
a.aaa();
printf( "%p %p %p %d %d", a.aaa, ccc, ddd(1), a.bbb(1) );
} Tag: 64-bit PCI mem xfer resolved Tag: 33192
Timer in kernel mode
Hi
can anyone tell me how to use timer (and their callbacks)
in kernel mode?
Thanks
Sam Tag: 64-bit PCI mem xfer resolved Tag: 33182
Spool file name
Hi all,
Somebody knows how to get the spool file name related to a
print job? In pre-W2003 Server I could use the job number,
but in Windows 2003 Server, if the port is TCP or IR the
job number is not used in the file name, and the .SHD file
is locked.
I'm wondering there is some hidden API in local print
provider to get the name.
Thanks in advance,
Wendell. Tag: 64-bit PCI mem xfer resolved Tag: 33155
TAPI - autodialers & Prerecorded Voice calls using a cellular modem
Hi,
First I wanted to confirm that it is legal to do this so long as you
are calling another business (you just can't call a private residence
using this system).
Second I wanted to know if anyone knows of a particular software
package, either pre-made or a software development kit to make your
own program to:
have a cell modem autodial a number then play back an mp3 or wav file
with a prerecorded voice then disconnect.
I know this *does* exist to work with land-based phone lines and
regular modems. There are also some pc peripheral cards that allow for
a phone system to be set up but these cards costs hundreds of dollars.
I am just interested only in something that works specifically with a
cell phone plan on a computer - IE:
a cellular modem, aircard or wireless voicemodem
Thanks in advance,
Stan Tag: 64-bit PCI mem xfer resolved Tag: 33153
When does The pending IRP be Cancelled?
Hello Everyone?
I meet a problem when I write a driver for my virtual serials
device.
In driver, i need pend some wait event irp( for function WaitCommEvent()).
When The data is little, The wait event irp works well.
But when much data comes, The wait event irp often cancels automatically.
I set cancel routine for event wait irp,and the routine is called.
Why does the kernel cancel the irp?
Why is so?
Jerry Tag: 64-bit PCI mem xfer resolved Tag: 33152
USB 2.0 isoch transfers CPU load up to 50%
Hello,
Our device use two iso endpoints. One In and one OUT.
We connect 6 devices. And on some machines the system hang. On other
we have more than 50% CPU load.
How we can decrease CPU load ?
Best regards, Alex. Tag: 64-bit PCI mem xfer resolved Tag: 33151
HCT 11.2 Driver Verifier test : Problem in PMTE test
Hi All,
=20
I got a problem during my NDIS Mux Intermediate=20
driver testing with HCT 11.2 kit in Driver Verifier Test.=20
In this test there is four subtests.
=20
1. NDIS Test
2. NDIS(IPSec) Test
3. ACPI S1 Stress Test
4. Driver Enable/Disable Test
=20
=20
NDIS test and NDIS(IPSec) tests are pass. But during ACPT=20
Test -it will fail with PMTE test. I attach that log=20
below. I use Windows XP OS.
During Driver Verifier test, when execute pm test shell it=20
will give error messege:
***************************************
PMTE failed to init
Error : DEVICE_TEST_INFOC :: INIT()
Error : Failed to init Device info
***************************************
For hardware requirement, Is there require S1,S2,S3 or S4=20
support in my Hardware Bios. Which way I come to know that=20
my motherboard support S1,
S2,S3 or S4 ? Is there any additional setting require=20
related to IP Addres binding with server and test system.=20
Now I had prepare my Test setup as per detail
given in HCT Documentation. Please tell me if there power=20
management related setting require.
=20
=20
Can you help me if you have any solution for above=20
test problem.
=20
Thanks in advance.
=20
Amit Dhaduk
=20
Log ::
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
Log header
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D+
=20
=20
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
VARIATION 1 START=20
Start
=20
FAILURE: couldn't find device with PNPID=3D=20
ROOT\MS_MUXMP\0001
=90=16=F5w=D85=20
=20
VARIATION 1:FAIL=20
Elapsed Time: Days 0 Hours 0 Minutes 0 Seconds 3
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
-----------------------------------------------------------
---------
NTLOG REPORT
-----------------------------------------------------------
---------
Tests Total 0 | Variations Total =20
1
-----------------------------------------------------------
---------
Tests Passed 0 0 % | Variations Passed =20
0 0%
Tests Warned 0 0 % | Variations Warned =20
0 0%=20
Tests Failed sev3 0 0 % | Variations Failed sev3 =20
1 100%=20
Tests Failed sev2 0 0 % | Variations Failed sev2 =20
0 0%=20
Tests Failed sev1 0 0 % | Variations Failed sev1 =20
0 0%=20
Tests Blocked 0 0 % | Variations Blocked =20
0 0%=20
Tests Aborted 0 0 % | Variations Aborted =20
0 0%=20
-----------------------------------------------------------
---------
=20 Tag: 64-bit PCI mem xfer resolved Tag: 33150
Driver architecture for multi-channel DMA
I am designing a driver to support a multi-channel DMA bus-master
device. I wanted to associate a channel with the file handle from a
CreateFile call. For example UserA connects to the driver by calling
CreateFile. The driver reserves DMA channel A for them. UserB
connects to the driver by calling CreateFile. The driver reserves DMA
channel B for them. UserA writes data to the device using WriteFile
and UserB does the same. In my DispatchWrite function, how do I
distinguish between IRPs that came from different WriteFile calls and
properly associate them with their channel's queues?
Am I on the right track or do I need to consider an alternate driver
architecture?
Thanks,
David Atkisson Tag: 64-bit PCI mem xfer resolved Tag: 33127
regsvr32 error says "file not found" on Win2003 Server
Hello all,
Last week I asked this forum how to register a DLL and got the answer:
________________
Assuming the dll was not part of a COM+ package, put your dll in the
directory you want (doesn't have to be part of the folder structure for the
website) and then open a DOS prompt and type:
regsvr32.exe c:\PathToTheDLL
________________
We are running Win2003 Server Web edition and when I do this I get the error
message:
LoadLibrary("c:\Windows\system32\filefunctions.dll") failed - The specified
module could not be found.
This is definitely where the file is. The DLL is necessary to support a
function in the ColdFusion based administrator tools for our web site. Any
ideas anyone??
There is one strange thing about this DLL and that is that it was written in
1997 and when I view the permissions on the file I cannot change them at
all. I copied it over from the server that is currently in use and I am
trying to get the new server ready to replace the old server.
Last important thing is that when I looked at the Properties panel just now
I saw the following comment:
COM object for providing filefunctions to ASP. So it appears that this
could be part of a COM+ package as indicated in the answer I received in the
forum.
I'm the ColdFusion guy - not a windows developer but I have not been able to
resolve this.
Thanks in advance, Jerry Tag: 64-bit PCI mem xfer resolved Tag: 33124
Interrupt Handler
Do, I have to have an interrupt handler for a PCI card
that supports interrupts?
This is a throw-away driver for architectural testing.
I can guarentee that the card will not fire interrupts
during my testing. However, the I/O manager will assign
resources to my card.
Can I skip the handler, or should I just supply a no-op
function? What happens if I don't supply the handler? Tag: 64-bit PCI mem xfer resolved Tag: 33122
set infrastructure mode & SSID programmatically
I would like to write a program to set the SSID and
infrastructure mode on a Cisco 350 wireless adapter card.
The solution needs to work on Win2K as well as XP so I am
limited to NDIS 5.0. I can't just use the network
configuration app in the Control Panel or Cisco's ACU. It
has to be done through a program. Any advice? Tag: 64-bit PCI mem xfer resolved Tag: 33114
Windows XP bootup issue with wireless 802.1x
While debugging wireless/WPA/802.1x against
our Access Points, I found that there are bootup
issues in XP booting with the wireless NICs as
the only interface i.e. no wired connectivity
when they are using 802.1x/EAP/PEAP
Many a time, PEAP negotiations using user login
credentials fail because the RasMan/Remote
Access Connection Manager that hosts MSCHAPV2
authentication exits/aborts unexpectedly leaving
the authentication to time out at the AP side.
It does not seem to recover from this failure.
From looking at the "netsh ras..." tracing logs it
seems that RasMan terminates based on reference
counting mechanism. The mechanism may be flawed or
there is a race condition between it and the
EAP processing.
In any case I have found a way to keep this
problem from happening by keep RasMan alive -
enabling Application Layer Gateway and
Internet Connection Firewall - users of RasMan -
keeps the reference count up and prevents RasMan
from exiting prematurely.
Any one else seen problems with windows XP boot
when using wireless/802.1x? Any patches/updates
from Microsoft?
Thanks,
- Nehru
ps: If there is a another group which is more appropriate
for this post I'd appreciate it if you let me know. Tag: 64-bit PCI mem xfer resolved Tag: 33112
IWiaLog still not working
I've asked this question a while back and no one seemed to know the
answer. But I have a bit more info this time.
I've built a WIA minidriver using the DDK compiler and linker. But for
some reason, I've not been able to output trace and warning messages
through system WIA log facility. I've enabled logging with the DDK's
Wia Logging Configuration Tool---I added the module and set the debug
output to full (level 3; trace, warning, & error messages enabled).
I've also tried directly using the IWiaLog interface instead of the
macros, to make sure the call is made. But no messages are output.
However, I CAN get messages written to the log as long as I specify
the WIA_ERROR flag in the call to IWiaLog::Log(). But if I specify
WIA_TRACE or WIA_WARNING, the messages do not get sent to the log.
That sounds as if something in Windows is configured to output error
messages but not trace or warning messages. And there is a place in
the registry for this at:
HKLM\System\CurrentControlSet\Control\StillImage\Logging\
I've made sure that my module appears there and that the level is set
to 7. And I've restarted the WIA service after making those changes.
But still no warning or trace messages. I've also set the levels to 7
for the modules listed under:
HKLM\System\CurrentControlSet\Control\StillImage\Debug\
although I don't believe that should have anything to do with it. It
was something to try.
So why is it that I can output only WIA_ERROR messages but not
WIA_TRACE or WIA_WARNING messages? It seems like it should be simple
but I can't find it. I hate having to debug the debugging facility. :( Tag: 64-bit PCI mem xfer resolved Tag: 33111
low resource situation during IRP_MN_SET_POWER
Hello
I have modeled my power handling along the lines of toaster example in
the DDK. The example allocates separate work item and queues it to
handle device specific power handling which gets scheduled at passive
level. When I am running it with driver verifier enabled and low
resource simulation option turned on, I find that at times allocation
of work item can fail. Now as per DDK, the Device can never fail the
IRP_MN_SET_POWER IRP.
I am looking for suggestions on how to handle these and other kind of
resource failures that can happen during IRP_MN_SET_POWER.
Thanks in advance.
Puneet Tag: 64-bit PCI mem xfer resolved Tag: 33106
capturing text information using a display driver
I am using DrvTextOut to capture the text information. However,
whenever I type anything on any editor I first get a DrvBitBlt which gives
the co-ordiante of the entire client area of the editor as the destination
surface and then only I get the DrvTextOut call. I want to know why the
DrvBitBlt call comes in this case and not only the DrvTextOut call. Is there
a way to distinguish this call from the DrvBitBlt which comes when there is
actual change in the screen.
Thanks,
Sachin Tag: 64-bit PCI mem x