Problem with keyboard driver

hi all,
I am new to driver. I m writting a keyboard driver to unfunction
certatin keys of keyboard. Now i had a problem in ServiceCallBack
Routine, in this routine i had written a code to unfunction certain
keys as…

if(InputDataStart->MakeCode == 0x3b ||
0x3c ||
0x3d ||
0x3e ||
0x3f ||
0x40 ||
0x41 ||
0x42 ||
0x43 ||
0x44 ||
0x133 ||
0x134
)
{
DropIrp(Irp) // But where from can i get this irp which i want to
destroy
{
Irp->Cancel;
}
}

I dnt want the irp in which i had made changes to go to class driver.

thanks in advance.


IndiaInfo Mail - the free e-mail service with a difference! www.indiainfo.com
Check out our value-added Premium features, such as an extra 20MB for mail storage, POP3, e-mail forwarding, and ads-free mailboxes!

If you have a ServiceCallback, you do not deal with PIRPs when reporting
scan codes, instead, do not call the upper ServiceCallback routine with
any packet you do not want to report, when iterating over the array of
packets,just do this

PKEYBOARD_INPUT_DATA pCur;
ULONG consumed;

consumed = 0;

for (pCur = InputDataStart; pCur < InputDataEnd; pCur++)
{
ULONG
if (SomeCheckOnMakeCodeToDropPacket(pCur->MakeCode)) {
//do not report packet, but indicate that the packet was consumed
consumed++;
}
else {
ULONG tmpConsumed;
UpperServiceCallback(UpperContext, pCur, pCur+1, &tmpConsumed);
consumed += tmpConsumed;
}
}

*InputDataConsumed = consumed;

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Vikky Kishra
Sent: Thursday, December 29, 2005 10:46 PM
To: Windows System Software Devs Interest List
Subject: [ntdev] Problem with keyboard driver

hi all,
I am new to driver. I m writting a keyboard driver to unfunction
certatin keys of keyboard. Now i had a problem in ServiceCallBack
Routine, in this routine i had written a code to unfunction certain
keys as…

if(InputDataStart->MakeCode == 0x3b ||
0x3c ||
0x3d ||
0x3e ||
0x3f ||
0x40 ||
0x41 ||
0x42 ||
0x43 ||
0x44 ||
0x133 ||
0x134
)
{
DropIrp(Irp) // But where from can i get this irp which i want to
destroy
{
Irp->Cancel;
}
}

I dnt want the irp in which i had made changes to go to class driver.

thanks in advance.


IndiaInfo Mail - the free e-mail service with a difference!
www.indiainfo.com
Check out our value-added Premium features, such as an extra 20MB for
mail storage, POP3, e-mail forwarding, and ads-free mailboxes!


Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256

You are currently subscribed to ntdev as: unknown lmsubst tag argument:
‘’
To unsubscribe send a blank email to xxxxx@lists.osr.com

Vikky Kishra wrote:

hi all,
I am new to driver. I m writting a keyboard driver to unfunction
certatin keys of keyboard. Now i had a problem in ServiceCallBack
Routine, in this routine i had written a code to unfunction certain
keys as…

if(InputDataStart->MakeCode == 0x3b ||
0x3c ||
0x3d ||
0x3e ||
0x3f ||
0x40 ||
0x41 ||
0x42 ||
0x43 ||
0x44 ||
0x133 ||
0x134
)
{
DropIrp(Irp) // But where from can i get this irp which i want to
destroy
{
Irp->Cancel;
}
}

That surely can’t be the exact code. That code does not do what you
think it does. The expression “0x3c” is always true, so the “if” will
always be taken. You need:

if( InputDataStart->MakeCode == 0x3b ||
InputDataStart->MakeCode == 0x3c ||
InputDataStart->MakeCode == 0x3d ||

Or, more efficiently:

if( ((InputDataStart->MakeCode >= 0x3b) && (InputDataStart->MakeCode
<= 0x44))
|| InputDataStart->MakeCode == 0x133
|| InputDataStart->MakeCode == 0x134
)

I dnt want the irp in which i had made changes to go to class driver.

thanks in advance.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.