RES: HID Keyboard with special features

Thanks Doron,

The firmware is to be written from scratch.
I´m trying to build the driver from firefly sample without success.

I will need receive a PIN entered on the ATM keyboard product and all
keyboard traffic for another product.

I have this solution for PS/2 Keyboard using an upper filter.
I think if I write an upper filter I won´t care the USB stuff… like URBs,
pipes. Is it correct ?

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Doron Holan
Enviada em: terça-feira, 31 de janeiro de 2006 15:12
Para: Windows System Software Devs Interest List
Assunto: RE: [ntdev] HID Keyboard with special features

If you are building the HID keyboard from scratch, you can probably expose
some of this functionality through a separate top level collection. For
instance, you can have private usage that you expose to download firmware to
the device. this will allow the complicated logic to live in user mode
(e.g. reading, validating, parsing the firmware file, etc).

Are you going to encrypt all keyboard traffic or just special parts of the
keyboard? Again, if it is just parts, you can create a separate top level
collection to expose this functionality.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Tuesday, January 31, 2006 10:06 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] HID Keyboard with special features

Also, note that it’s fairly easy to send control transfers if you are
layered below the FDO (hidusb), because you don’t need a pipe handle.
However, if you need to perform bulk or interrupt transfers, you’ll need to
watch for URB_FUNCTION_SELECT_CONFIGURATION and friends, so that you can
keep a copy of the pipe handles. This will often break the contract between
device and FDO, since bulk/interrupt transfers are usually part of
multi-transfer protocols. Control transfers, though, are self-contained,
and therefore usually fairly safe.

– arlie

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ray Trent
Sent: Tuesday, January 31, 2006 12:54 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HID Keyboard with special features

In order to talk to the device you’ll need to send URBs. In order to do
that, you need to be below hidusb in the stack (because it filters out any
URB requests). So, install on the USB PnPID and specify your driver as a
lower filter.

Yes, KMDF is probably the easiest way to go with that.

Wilson Bernardes wrote:

Hello,

I need do build a HID USB Keyboard with some special features but
I´m
new in USB and HID.
This features are something like updating firmware on fly, receive
and send encrypted data and so on.
I´ve just installed the KMDF 1.0 and new DDK.
I´m very confusing about the correct way to follow.
I already inspect the firefly sample and it doesn´t help very much.
Do I need make a lower or upper filter driver ??
Is the Walter Oney book a better starting point for my project ?
(I´m
using Chris Cant book but it´s a bit confuse).

Any help is highly apprecitated.

Regards.
Wilson

Scanned by WinProxy
http://www.Ositis.com/


Ray


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

You are currently subscribed to ntdev as: xxxxx@stonestreetone.com To
unsubscribe send a blank email to xxxxx@lists.osr.com


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


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

Scanned by WinProxy
http://www.Ositis.com/

An upper filter of what? The hid keyboard stack?

If you do *not* enumerate the PIN pad device as a keyboard, just enumerate it under your own usage page, the OS will do nothing with it. Since you are creating the f.w. from scratch, you can make this change. you can then have a driver read the device on its own without any filtering of any kind.

For the other product that you are flitering keyboard traffic, what do you want to do with it? Do you want to filter the scan codes reported to the OS or is this where you are decrypting data?

d

– I can spell, I just can’t type.

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
Sent: Tuesday, January 31, 2006 12:06 PM
To: Windows System Software Devs Interest List
Subject: RES: [ntdev] HID Keyboard with special features

Thanks Doron,

The firmware is to be written from scratch.
I?m trying to build the driver from firefly sample without success.

I will need receive a PIN entered on the ATM keyboard product and all
keyboard traffic for another product.

I have this solution for PS/2 Keyboard using an upper filter.
I think if I write an upper filter I won?t care the USB stuff… like URBs,
pipes. Is it correct ?

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Doron Holan
Enviada em: ter?a-feira, 31 de janeiro de 2006 15:12
Para: Windows System Software Devs Interest List
Assunto: RE: [ntdev] HID Keyboard with special features

If you are building the HID keyboard from scratch, you can probably expose
some of this functionality through a separate top level collection. For
instance, you can have private usage that you expose to download firmware to
the device. this will allow the complicated logic to live in user mode
(e.g. reading, validating, parsing the firmware file, etc).

Are you going to encrypt all keyboard traffic or just special parts of the
keyboard? Again, if it is just parts, you can create a separate top level
collection to expose this functionality.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Tuesday, January 31, 2006 10:06 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] HID Keyboard with special features

Also, note that it’s fairly easy to send control transfers if you are
layered below the FDO (hidusb), because you don’t need a pipe handle.
However, if you need to perform bulk or interrupt transfers, you’ll need to
watch for URB_FUNCTION_SELECT_CONFIGURATION and friends, so that you can
keep a copy of the pipe handles. This will often break the contract between
device and FDO, since bulk/interrupt transfers are usually part of
multi-transfer protocols. Control transfers, though, are self-contained,
and therefore usually fairly safe.

– arlie

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ray Trent
Sent: Tuesday, January 31, 2006 12:54 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HID Keyboard with special features

In order to talk to the device you’ll need to send URBs. In order to do
that, you need to be below hidusb in the stack (because it filters out any
URB requests). So, install on the USB PnPID and specify your driver as a
lower filter.

Yes, KMDF is probably the easiest way to go with that.

Wilson Bernardes wrote:

Hello,

I need do build a HID USB Keyboard with some special features but
I?m
new in USB and HID.
This features are something like updating firmware on fly, receive
and send encrypted data and so on.
I?ve just installed the KMDF 1.0 and new DDK.
I?m very confusing about the correct way to follow.
I already inspect the firefly sample and it doesn?t help very much.
Do I need make a lower or upper filter driver ??
Is the Walter Oney book a better starting point for my project ?
(I?m
using Chris Cant book but it?s a bit confuse).

Any help is highly apprecitated.

Regards.
Wilson

Scanned by WinProxy
http://www.Ositis.com/


Ray


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

You are currently subscribed to ntdev as: xxxxx@stonestreetone.com To
unsubscribe send a blank email to xxxxx@lists.osr.com


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


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

Scanned by WinProxy
http://www.Ositis.com/


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

You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

>

An upper filter of what? The hid keyboard stack?

Yes. A hid upper filter.

If you do *not* enumerate the PIN pad device as a keyboard, just
enumerate it under your own usage page, the OS will do nothing
with it. Since you are creating the f.w. from scratch, you can
make this change. you can then have a driver read the device on
its own without any filtering of any kind.

The Pin pad needs to be seem like a normal keyboard.

For the other product that you are flitering keyboard traffic,
what do you want to do with it? Do you want to filter the scan
codes reported to the OS or is this where you are decrypting data?

I will decrypt data and convert then to scan codes.

d

– I can spell, I just can’t type.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
Sent: Tuesday, January 31, 2006 12:06 PM
To: Windows System Software Devs Interest List
Subject: RES: [ntdev] HID Keyboard with special features

Thanks Doron,

The firmware is to be written from scratch.
I´m trying to build the driver from firefly sample without success.

I will need receive a PIN entered on the ATM keyboard
product and all
keyboard traffic for another product.

I have this solution for PS/2 Keyboard using an upper filter.
I think if I write an upper filter I won´t care the USB
stuff… like URBs,
pipes. Is it correct ?

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Doron Holan
Enviada em: terça-feira, 31 de janeiro de 2006 15:12
Para: Windows System Software Devs Interest List
Assunto: RE: [ntdev] HID Keyboard with special features

If you are building the HID keyboard from scratch, you can probably expose
some of this functionality through a separate top level collection. For
instance, you can have private usage that you expose to download
firmware to
the device. this will allow the complicated logic to live in user mode
(e.g. reading, validating, parsing the firmware file, etc).

Are you going to encrypt all keyboard traffic or just special parts of the
keyboard? Again, if it is just parts, you can create a separate top level
collection to expose this functionality.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Tuesday, January 31, 2006 10:06 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] HID Keyboard with special features

Also, note that it’s fairly easy to send control transfers if you are
layered below the FDO (hidusb), because you don’t need a pipe handle.
However, if you need to perform bulk or interrupt transfers,
you’ll need to
watch for URB_FUNCTION_SELECT_CONFIGURATION and friends, so that you can
keep a copy of the pipe handles. This will often break the
contract between
device and FDO, since bulk/interrupt transfers are usually part of
multi-transfer protocols. Control transfers, though, are self-contained,
and therefore usually fairly safe.

– arlie

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ray Trent
Sent: Tuesday, January 31, 2006 12:54 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HID Keyboard with special features

In order to talk to the device you’ll need to send URBs. In order to do
that, you need to be below hidusb in the stack (because it filters out any
URB requests). So, install on the USB PnPID and specify your driver as a
lower filter.

Yes, KMDF is probably the easiest way to go with that.

Wilson Bernardes wrote:
> Hello,
>
> I need do build a HID USB Keyboard with some special features but
I´m
> new in USB and HID.
> This features are something like updating firmware on fly, receive
> and send encrypted data and so on.
> I´ve just installed the KMDF 1.0 and new DDK.
> I´m very confusing about the correct way to follow.
> I already inspect the firefly sample and it doesn´t help very much.
> Do I need make a lower or upper filter driver ??
> Is the Walter Oney book a better starting point for my project ?
(I´m
> using Chris Cant book but it´s a bit confuse).
>
> Any help is highly apprecitated.
>
> Regards.
> Wilson
>
>
> Scanned by WinProxy
> http://www.Ositis.com/
>
>


Ray


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

You are currently subscribed to ntdev as: xxxxx@stonestreetone.com To
unsubscribe send a blank email to xxxxx@lists.osr.com


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


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

Scanned by WinProxy
http://www.Ositis.com/


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

You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


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

Scanned by WinProxy
http://www.Ositis.com/

If you need to decrypt the data, you will need to filter below hidusb like others on the list have suggested. Otherwise, hidclass will not be able to parse the HID report that is being reported by the device. You can filter the read coming in from above you, set a completion routine and decrypt it there (as long as it’s fast, otherwise you will need to queue a work item to do it at passive level).

A 2nd driver would then be required to filter above kbdhid and below kbdclass. There you can get the scan codes in the form of an array of KEYBOARD_INPUT_DATAs.

From my experience with PIN pad entry and smart card systems, the only secure way of entering a PIN or changing the PIN is to have the pin pad be entirely self contained and not send out any data to the host at all. As soon as you start sending data to the host, I can see the unemcrypted data by adding my own filter.

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
Sent: Tuesday, January 31, 2006 1:04 PM
To: Windows System Software Devs Interest List
Subject: RES: [ntdev] HID Keyboard with special features

An upper filter of what? The hid keyboard stack?

Yes. A hid upper filter.

If you do *not* enumerate the PIN pad device as a keyboard, just
enumerate it under your own usage page, the OS will do nothing
with it. Since you are creating the f.w. from scratch, you can
make this change. you can then have a driver read the device on
its own without any filtering of any kind.

The Pin pad needs to be seem like a normal keyboard.

For the other product that you are flitering keyboard traffic,
what do you want to do with it? Do you want to filter the scan
codes reported to the OS or is this where you are decrypting data?

I will decrypt data and convert then to scan codes.

d

– I can spell, I just can’t type.

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
Sent: Tuesday, January 31, 2006 12:06 PM
To: Windows System Software Devs Interest List
Subject: RES: [ntdev] HID Keyboard with special features

Thanks Doron,

The firmware is to be written from scratch.
I?m trying to build the driver from firefly sample without success.

I will need receive a PIN entered on the ATM keyboard
product and all
keyboard traffic for another product.

I have this solution for PS/2 Keyboard using an upper filter.
I think if I write an upper filter I won?t care the USB
stuff… like URBs,
pipes. Is it correct ?

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Doron Holan
Enviada em: ter?a-feira, 31 de janeiro de 2006 15:12
Para: Windows System Software Devs Interest List
Assunto: RE: [ntdev] HID Keyboard with special features

If you are building the HID keyboard from scratch, you can probably expose
some of this functionality through a separate top level collection. For
instance, you can have private usage that you expose to download
firmware to
the device. this will allow the complicated logic to live in user mode
(e.g. reading, validating, parsing the firmware file, etc).

Are you going to encrypt all keyboard traffic or just special parts of the
keyboard? Again, if it is just parts, you can create a separate top level
collection to expose this functionality.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
Sent: Tuesday, January 31, 2006 10:06 AM
To: Windows System Software Devs Interest List
Subject: RE: [ntdev] HID Keyboard with special features

Also, note that it’s fairly easy to send control transfers if you are
layered below the FDO (hidusb), because you don’t need a pipe handle.
However, if you need to perform bulk or interrupt transfers,
you’ll need to
watch for URB_FUNCTION_SELECT_CONFIGURATION and friends, so that you can
keep a copy of the pipe handles. This will often break the
contract between
device and FDO, since bulk/interrupt transfers are usually part of
multi-transfer protocols. Control transfers, though, are self-contained,
and therefore usually fairly safe.

– arlie

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Ray Trent
Sent: Tuesday, January 31, 2006 12:54 PM
To: Windows System Software Devs Interest List
Subject: Re:[ntdev] HID Keyboard with special features

In order to talk to the device you’ll need to send URBs. In order to do
that, you need to be below hidusb in the stack (because it filters out any
URB requests). So, install on the USB PnPID and specify your driver as a
lower filter.

Yes, KMDF is probably the easiest way to go with that.

Wilson Bernardes wrote:
> Hello,
>
> I need do build a HID USB Keyboard with some special features but
I?m
> new in USB and HID.
> This features are something like updating firmware on fly, receive
> and send encrypted data and so on.
> I?ve just installed the KMDF 1.0 and new DDK.
> I?m very confusing about the correct way to follow.
> I already inspect the firefly sample and it doesn?t help very much.
> Do I need make a lower or upper filter driver ??
> Is the Walter Oney book a better starting point for my project ?
(I?m
> using Chris Cant book but it?s a bit confuse).
>
> Any help is highly apprecitated.
>
> Regards.
> Wilson
>
>
> Scanned by WinProxy
> http://www.Ositis.com/
>
>


Ray


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

You are currently subscribed to ntdev as: xxxxx@stonestreetone.com To
unsubscribe send a blank email to xxxxx@lists.osr.com


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


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

Scanned by WinProxy
http://www.Ositis.com/


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

You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


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

Scanned by WinProxy
http://www.Ositis.com/


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

You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com

Thanks a lot Doron, Arlie and Ray.
I was in the wrong way…

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Doron Holan
Enviada em: terça-feira, 31 de janeiro de 2006 17:22
Para: Windows System Software Devs Interest List
Assunto: RE: [ntdev] HID Keyboard with special features

If you need to decrypt the data, you will need to filter below
hidusb like others on the list have suggested. Otherwise,
hidclass will not be able to parse the HID report that is being
reported by the device. You can filter the read coming in from
above you, set a completion routine and decrypt it there (as long
as it’s fast, otherwise you will need to queue a work item to do
it at passive level).

A 2nd driver would then be required to filter above kbdhid and
below kbdclass. There you can get the scan codes in the form of
an array of KEYBOARD_INPUT_DATAs.

From my experience with PIN pad entry and smart card systems, the
only secure way of entering a PIN or changing the PIN is to have
the pin pad be entirely self contained and not send out any data
to the host at all. As soon as you start sending data to the
host, I can see the unemcrypted data by adding my own filter.

d

-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
Sent: Tuesday, January 31, 2006 1:04 PM
To: Windows System Software Devs Interest List
Subject: RES: [ntdev] HID Keyboard with special features

>
> An upper filter of what? The hid keyboard stack?
>
Yes. A hid upper filter.

>
> If you do *not* enumerate the PIN pad device as a keyboard, just
> enumerate it under your own usage page, the OS will do nothing
> with it. Since you are creating the f.w. from scratch, you can
> make this change. you can then have a driver read the device on
> its own without any filtering of any kind.

The Pin pad needs to be seem like a normal keyboard.

>
> For the other product that you are flitering keyboard traffic,
> what do you want to do with it? Do you want to filter the scan
> codes reported to the OS or is this where you are decrypting data?

I will decrypt data and convert then to scan codes.

>
> d
>
> – I can spell, I just can’t type.
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
> Sent: Tuesday, January 31, 2006 12:06 PM
> To: Windows System Software Devs Interest List
> Subject: RES: [ntdev] HID Keyboard with special features
>
>
> Thanks Doron,
>
> The firmware is to be written from scratch.
> I´m trying to build the driver from firefly sample without success.
>
> I will need receive a PIN entered on the ATM keyboard
> product and all
> keyboard traffic for another product.
>
> I have this solution for PS/2 Keyboard using an upper filter.
> I think if I write an upper filter I won´t care the USB
> stuff… like URBs,
> pipes. Is it correct ?
>
> Regards
> Wilson
>
>
> -----Mensagem original-----
> De: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com]Em nome de Doron Holan
> Enviada em: terça-feira, 31 de janeiro de 2006 15:12
> Para: Windows System Software Devs Interest List
> Assunto: RE: [ntdev] HID Keyboard with special features
>
>
> If you are building the HID keyboard from scratch, you can
probably expose
> some of this functionality through a separate top level collection. For
> instance, you can have private usage that you expose to download
> firmware to
> the device. this will allow the complicated logic to live in user mode
> (e.g. reading, validating, parsing the firmware file, etc).
>
> Are you going to encrypt all keyboard traffic or just special
parts of the
> keyboard? Again, if it is just parts, you can create a
separate top level
> collection to expose this functionality.
>
> d
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Arlie Davis
> Sent: Tuesday, January 31, 2006 10:06 AM
> To: Windows System Software Devs Interest List
> Subject: RE: [ntdev] HID Keyboard with special features
>
> Also, note that it’s fairly easy to send control transfers if you are
> layered below the FDO (hidusb), because you don’t need a pipe handle.
> However, if you need to perform bulk or interrupt transfers,
> you’ll need to
> watch for URB_FUNCTION_SELECT_CONFIGURATION and friends, so that you can
> keep a copy of the pipe handles. This will often break the
> contract between
> device and FDO, since bulk/interrupt transfers are usually part of
> multi-transfer protocols. Control transfers, though, are
self-contained,
> and therefore usually fairly safe.
>
> – arlie
>
>
>
> -----Original Message-----
> From: xxxxx@lists.osr.com
> [mailto:xxxxx@lists.osr.com] On Behalf Of Ray Trent
> Sent: Tuesday, January 31, 2006 12:54 PM
> To: Windows System Software Devs Interest List
> Subject: Re:[ntdev] HID Keyboard with special features
>
> In order to talk to the device you’ll need to send URBs. In order to do
> that, you need to be below hidusb in the stack (because it
filters out any
> URB requests). So, install on the USB PnPID and specify your driver as a
> lower filter.
>
> Yes, KMDF is probably the easiest way to go with that.
>
> Wilson Bernardes wrote:
> > Hello,
> >
> > I need do build a HID USB Keyboard with some special features but
> I´m
> > new in USB and HID.
> > This features are something like updating firmware on fly, receive
> > and send encrypted data and so on.
> > I´ve just installed the KMDF 1.0 and new DDK.
> > I´m very confusing about the correct way to follow.
> > I already inspect the firefly sample and it doesn´t help very much.
> > Do I need make a lower or upper filter driver ??
> > Is the Walter Oney book a better starting point for my project ?
> (I´m
> > using Chris Cant book but it´s a bit confuse).
> >
> > Any help is highly apprecitated.
> >
> > Regards.
> > Wilson
> >
> >
> > Scanned by WinProxy
> > http://www.Ositis.com/
> >
> >
>
> –
> Ray
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@stonestreetone.com To
> unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
>
> —
> 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
>
>
> —
> 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
>
>
> Scanned by WinProxy
> http://www.Ositis.com/
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@microsoft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
> —
> 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
>

Scanned by WinProxy
http://www.Ositis.com/


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

You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com


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

Scanned by WinProxy
http://www.Ositis.com/

Filtering in between HIDUSB and the USB stack can be a good idea. Have you
already made decisions about the wire protocol of the keyboard?

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “Wilson Bernardes”
To: “Windows System Software Devs Interest List”
Sent: Tuesday, January 31, 2006 8:51 PM
Subject: [ntdev] HID Keyboard with special features

>
> Hello,
>
> I need do build a HID USB Keyboard with some special features but I´m new
> in USB and HID.
> This features are something like updating firmware on fly, receive and send
> encrypted data and so on.
> I´ve just installed the KMDF 1.0 and new DDK.
> I´m very confusing about the correct way to follow.
> I already inspect the firefly sample and it doesn´t help very much.
> Do I need make a lower or upper filter driver ??
> Is the Walter Oney book a better starting point for my project ? (I´m using
> Chris Cant book but it´s a bit confuse).
>
> Any help is highly apprecitated.
>
> Regards.
> Wilson
>
>
> Scanned by WinProxy
> http://www.Ositis.com/
>
>
> —
> Questions? First check the Kernel Driver FAQ at
http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com

I haven´t made decisions about nothing yet. I´m reading and trying to
understand the HID and USB.
Following the sugestions from Doron and others I know I need a lower filter
sit below hidusb.
And I know the standart USB keyboard uses interrupt transfer protocol.

Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Maxim S. Shatskih
Enviada em: quarta-feira, 1 de fevereiro de 2006 08:51
Para: Windows System Software Devs Interest List
Assunto: Re: [ntdev] HID Keyboard with special features

Filtering in between HIDUSB and the USB stack can be a good
idea. Have you
already made decisions about the wire protocol of the keyboard?

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

----- Original Message -----
From: “Wilson Bernardes”
> To: “Windows System Software Devs Interest List”
> Sent: Tuesday, January 31, 2006 8:51 PM
> Subject: [ntdev] HID Keyboard with special features
>
>
> >
> > Hello,
> >
> > I need do build a HID USB Keyboard with some special features
> but I´m new
> > in USB and HID.
> > This features are something like updating firmware on fly,
> receive and send
> > encrypted data and so on.
> > I´ve just installed the KMDF 1.0 and new DDK.
> > I´m very confusing about the correct way to follow.
> > I already inspect the firefly sample and it doesn´t help very much.
> > Do I need make a lower or upper filter driver ??
> > Is the Walter Oney book a better starting point for my project
> ? (I´m using
> > Chris Cant book but it´s a bit confuse).
> >
> > Any help is highly apprecitated.
> >
> > Regards.
> > Wilson
> >
> >
> > Scanned by WinProxy
> > http://www.Ositis.com/
> >
> >
> > —
> > Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
> >
> > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
>
>
>
> —
> Questions? First check the Kernel Driver FAQ at
> http://www.osronline.com/article.cfm?id=256
>
> You are currently subscribed to ntdev as: xxxxx@fourth.com.br
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Scanned by WinProxy
http://www.Ositis.com/

> And I know the standart USB keyboard uses interrupt transfer protocol.

All USB HID devices use interrupt traffic IIRC.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com

One caveat on that. A USB HID device may also have bulk endpoints, but
those endpoints can’t, AFAIK, be associated with the HID traffic. We
made a small touchscreen once that used full-speed bulk transfers to put
the display data onto the screen and had an interrupt endpoint HID
descriptor for the pointing data.

Maxim S. Shatskih wrote:

> And I know the standart USB keyboard uses interrupt transfer protocol.

All USB HID devices use interrupt traffic IIRC.

Maxim Shatskih, Windows DDK MVP
StorageCraft Corporation
xxxxx@storagecraft.com
http://www.storagecraft.com


Ray

I´m planning to have two more endpoints in my HID Keyboard to send and
receive data, for special features, in bulk mode.
Then I put my own protocol in usb data packets to control that “special
features”: update firmware, get encrypted data, send encryption keys, send
messages for a display, etc…
To send and receive data I build a lower filter below hidusb that send URBs
and exposes IOCTLs for my app in user mode. So I make all the hard work with
the data (parse, validation, etc) in user mode.

Am I in the correct way ?

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Ray Trent
Enviada em: quarta-feira, 1 de fevereiro de 2006 18:27
Para: Windows System Software Devs Interest List
Assunto: Re:[ntdev] HID Keyboard with special features

One caveat on that. A USB HID device may also have bulk endpoints, but
those endpoints can’t, AFAIK, be associated with the HID traffic. We
made a small touchscreen once that used full-speed bulk transfers to put
the display data onto the screen and had an interrupt endpoint HID
descriptor for the pointing data.

Maxim S. Shatskih wrote:
>> And I know the standart USB keyboard uses interrupt transfer protocol.
>
> All USB HID devices use interrupt traffic IIRC.
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
>
>


Ray


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

You are currently subscribed to ntdev as: xxxxx@fourth.com.br
To unsubscribe send a blank email to xxxxx@lists.osr.com

Scanned by WinProxy
http://www.Ositis.com/

That is correct, but you will not be able to open your filter directly. HIDClass will block the IRP_MJ_CREATE call. You will need to create a control device object or enumerate your own PDO to get at your filter. If I remember correctly, you are using KMDF. If so, look at how the kbfiltr example enumerates a raw PDO. You will want to do the same thing (change the Hardware ID though).

d

-----Original Message-----
From: xxxxx@lists.osr.com [mailto:xxxxx@lists.osr.com] On Behalf Of Wilson Bernardes
Sent: Thursday, February 02, 2006 6:59 AM
To: Windows System Software Devs Interest List
Subject: RES: [ntdev] HID Keyboard with special features

I?m planning to have two more endpoints in my HID Keyboard to send and
receive data, for special features, in bulk mode.
Then I put my own protocol in usb data packets to control that “special
features”: update firmware, get encrypted data, send encryption keys, send
messages for a display, etc…
To send and receive data I build a lower filter below hidusb that send URBs
and exposes IOCTLs for my app in user mode. So I make all the hard work with
the data (parse, validation, etc) in user mode.

Am I in the correct way ?

Regards
Wilson

-----Mensagem original-----
De: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com]Em nome de Ray Trent
Enviada em: quarta-feira, 1 de fevereiro de 2006 18:27
Para: Windows System Software Devs Interest List
Assunto: Re:[ntdev] HID Keyboard with special features

One caveat on that. A USB HID device may also have bulk endpoints, but
those endpoints can’t, AFAIK, be associated with the HID traffic. We
made a small touchscreen once that used full-speed bulk transfers to put
the display data onto the screen and had an interrupt endpoint HID
descriptor for the pointing data.

Maxim S. Shatskih wrote:
>> And I know the standart USB keyboard uses interrupt transfer protocol.
>
> All USB HID devices use interrupt traffic IIRC.
>
> Maxim Shatskih, Windows DDK MVP
> StorageCraft Corporation
> xxxxx@storagecraft.com
> http://www.storagecraft.com
>
>
>


Ray


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

You are currently subscribed to ntdev as: xxxxx@fourth.com.br
To unsubscribe send a blank email to xxxxx@lists.osr.com

Scanned by WinProxy
http://www.Ositis.com/


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

You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to xxxxx@lists.osr.com