IoRegisterDeviceInterface

Hello developers !

Now I write PC/SC driver for keyboard reader (W2K).
So I have to filter i8042prt. This works well and my AddDevice
routine successfully creates the device of type FILE_DEVICE_8042_PORT
and attaches it to PDO. This is needed to filter PS/2 keyboard
communication and this works well.

But for smartcard manager I need another device of type
FILE_DEVICE_SMARTCARD. This must not be in the device
stack for i8042prt because of keyboard class and port
driver interface. So I thought I must create separate device
object.

Now I create device with generating name and I treat this
device object like PDO. But there is a problem when I want to create a
symbolic link to this device using IoRegisterDeviceInterface.
This function returns STATUS_INVALID_DEVICE_REQUEST.
Reason is pointer at offset 14h of DeviceObjectExtension
(undocumented so I don’t know what is it) is NULL.

So can some of you help me with creating device object
for the reader and register it so symbolic link for SCM is created ?
(I have all dispatch routines separated for keyboard filter device and
for smartcard reader device)

Thanks a lot for your patience
Paul


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

Hello,

Create a Bus PDO device (like toaster sample) with new device ID
for your smard card device in your filter driver.

Than you have a new PnP Device for you smard card with INF file installation.
Maybe this helps.

elli


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

-----Original Message-----
From: Eliyas Yakub
Sent: Fri 1/19/2001 10:52 AM
To: ‘NT Developers Interest List’
Cc: ‘xxxxx@compelson.com’
Subject: RE: [ntdev] IoRegisterDeviceInterface

Roughly from what I understand from your description, here are couple of
ways to solve your problem:

  1. You can make your filter driver to pop a PDO (follow the toaster busenum
    driver sample) and do the enumeration of your smartcard driver. If you use
    one driver for all of these then that driver has to act as a filter (for the
    keyboard stack), a bus driver (to pop a pdo), and a function driver for the
    PDO. Complex but can be done. Toaster is there to help you. You can also
    separate the function driver from the filter.

  2. You can root-enumerate the smartcard driver and have it interface with
    your keyboard filter at it’s lower edge. You need to solve the dependency
    issues between two drivers using PnP notification mechanism. This is easy to
    do. Toastmon sample shows how to do this.

I don’t know how much you understand PnP concept and not sure all of these
make sense to you. Your best option is a) try your questions at
xxxxx@DISCUSS.MICROSOFT.COM mailto:yourxxxxx@DISCUSS.MICROSOFT.COM> b) If you don’t get help there, call MS
tech support.

-Eliyas

-----Original Message-----
From: Hrdina Pavel [mailto:xxxxx@compelson.com]
Sent: Wednesday, January 17, 2001 12:49 PM
To: NT Developers Interest List
Subject: [ntdev] IoRegisterDeviceInterface
Importance: High

Hello developers !

Now I write PC/SC driver for keyboard reader (W2K).
So I have to filter i8042prt. This works well and my AddDevice
routine successfully creates the device of type FILE_DEVICE_8042_PORT
and attaches it to PDO. This is needed to filter PS/2 keyboard
communication and this works well.

But for smartcard manager I need another device of type
FILE_DEVICE_SMARTCARD. This must not be in the device
stack for i8042prt because of keyboard class and port
driver interface. So I thought I must create separate device
object.

Now I create device with generating name and I treat this
device object like PDO. But there is a problem when I want to create a
symbolic link to this device using IoRegisterDeviceInterface.
This function returns STATUS_INVALID_DEVICE_REQUEST.
Reason is pointer at offset 14h of DeviceObjectExtension
(undocumented so I don’t know what is it) is NULL.

So can some of you help me with creating device object
for the reader and register it so symbolic link for SCM is created ?
(I have all dispatch routines separated for keyboard filter device and
for smartcard reader device)

Thanks a lot for your patience
Paul


You are currently subscribed to ntdev as: xxxxx@microsoft.com
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

begin 600 winmail.dat
M>)^(CD(0:0"``$```````!``$``0&gt;0!@(Y`0```````#H``$%@`,`<br>M#@```-$'`0`7``@`!@`*``(`"@$!"8`!`"$```!#03,S0C(S,S,Y04%&amp;-S0W<br>M048Y,3-#1CE$140W0C,Y-0!G!P$@@`,`#@```-$'`0`&lt;#@W````.@$!<br>M#8$(````"(0.0!@"X&amp;P.P$``.0`67]MF5H7``1\`,4`!````<br>M#@#,-0U#,.0P```````#!I!\`,$`!````#@```#,`-0`U<br>M`#,`.0`P```````#`!E!`20!````3````%(10Z"6P!N`'0`<br>M9`!E`'8`70`@`$D`;P!2`&amp;4`9P!I`',`=`!E`'(`1`!E`'8`:0!C`&amp;4`20!N<br>M`'0`90!R`&amp;8`80!C`&amp;4```!$XB+[6TF"P$"5L0```%$`````````<br>MW*=`R,!"$!JTN0@`*R_A@@$`````````+T\]34E#4D]33T94+T]5/4Y/4E1(<br>M04U%4DE#02]#3CU214-)4$E%3E13+T-./3,U-3,Y,``````?`&amp;80H`<br>M``!3`$T`5`!0```````?`&amp;&lt;``0```"P```!E`&amp;P`:0!Y`&amp;$`<p>M`&amp;,`&lt;@!O`',`;P!F`'0`+@!C`&amp;\`;0```!\`6@`!&@$4`;`!I`'D`<br>M80!S`"``60!A`&amp;L`=0!B```````?`#)``0````X````S`#4`-0`S`#D`,
M@%&lt;``$````X````xxxxx@Z+T\]34E#4D]33T94+T]5/4Y/4E1(04U%4DE#<br>M02]#3CU214-)4$E%3E13+T-./3,U-3,Y,``#`!U```````(!7@`!````40``<br>M``````#<it>M3D]25$A!345224-!+T-./5)%0TE0245.5%,O0TX],S4U,SDP!`:!<br>M````"@```%,`30!4`%```````!\`:0`!````+````&amp;4`;`!I`'D`80!S`'D`<br>M0`!M`&amp;D`8P!R`&amp;\`<p>M`&amp;D`&gt;0!A`',`(`!9`&amp;$`:P!U`&amp;(``````!\`,T`!````#@```#,`-0`U`#,`<br>M.0`P```````"`5\0#@!%6#HO3SU-24-23U-/1E0O3U4]3D]25$A!
M345224-!+T-./5)%0TE0245.5%,O0TX],S4U,SDP,`'D``````'P!P$<br>M``!$````6P!N’09!E'870@$D;P!2&49P!I’,=!E'(1!E<br>M’8:0!C&420!N’090!R&880!C&4````"7$``0```"`````!P(#)<br>M(A02_05^;.1/](9[-1+Q)%X&gt;%]>^X``P^SFUA`

M`'4`;`!``&,`;P!M`'``90!L`',`;P!N`"X`8P!O`&T`)P``````'P!T``$`
M```\````)P!.`%0`(`!$`&4`=@!E`&P`;P!P`&4`<@!S`"``20!N`'0`90!R
M`&4`

MX?_M2P,`"@!R8W!G,3(U@C(#0VAT;6PQ`S`_`0,!]PJ``J0#XP(`8VC!"L!S
M970P(`<3`H#_$`,`4`16"%4'LA'5#E$#`=T0US(&``;#$=4S!$80V5D2[V8T
M$&\1>S4#QE1\86@#<0*`$>,([PGW.WL<'PXP-1T_'D,1X0Q@8V<`4`L)`60S
M-A%@"Z4TLB`0`BI<#K(!D&<4\!<*HQ'C(H@T%/`\(40`3T-465!%($@`5$U,
M(%!50DP`24,@(BTO+U=$,T,F($141"4T-)(N$6!4<@!R=&D"(,,'0"xxxxx@14XB
M/B.-(R^Y*3$Q."20)4(H?3,B(/$JX$5!1"A]#O$IGRV/"2ID-S

M12A^-`[P26]298IG!`!T!)!$978-X*QE20(P!)!F`-!E*=YZ-220+S"/+K\U
MKRH*-H$.\#Q-151!(`6@LS,1`C`](@7@)4,U)S`P,"XR.0'0)S`B(!,G\`>`
M/4M\P`A`S!`D61O`.!`D?D*L5QQ'`!`D1C@`S!`]8\18#VK(9$^KV$1)
M5D#)``!#!SW)-A8T1C]#7S@B("9N8LQS<`*`0.@G80%`1O]_/D$!P$#7"J)`
MUPIQ*>PP_RPQ)H!&"TXH0X]$GT6C);#!)-!+455/5"4@0%4R(#)@>6P[4#G0
M05*`1TE.+5))1R5`X#H@,'!X*&%`Z`JQ_Q`"0?5"DT)10N]2#R.[$6!_6^!2
M[T7O2_](#UD'07!I"R%R*>PT*L%&3TY4Z54@:7H[4#)=:POB6.GZ+63B3P40
M,D`G\070!Y#ZM83I<+"2!+Y-JJE#Y($5@\'EA!"#P66%K=6N`/"Q:?TI$_UO^9V]H?VF/:I]T
MZ`9@`C`/;(]MGVZG;$!I(#$O:#$Y+P'0,`[P3[`Z^PY`$7!-9H]SCW2?=:]V
MO[E_)51O>']YCVZG)V*1]3*A91NP<`20!"`S`P>0KP5`<`]Q'W(D3#)1)WR/
MGWV??J]_OX#/C`5#8X)O1X-_A(@*L'5L0`6@;>F%L&QS`B`NDE&)7XIOWXM_
MC(^-GW>W;]!J!9!X;].03VZ84D568%L",`$`_'9=AH^'GW(5,@\S%I-/OY1?
ME6^A'Z(OHS\J1C5=`?XO8G*:KTP_34].7T]OJ(__67^=SUN?7*]?WU[/LO]@
M[SMA^S-2/0<3.4$;L3TCOSIP.G`!(&*_8\*=H6,3\(<#LF0;ED]34$%.K[0-
ML2!C"V`$$#TV.##0,S]`/>[*RK[OS"`!U9VAL9GFW\`-A('<8
M\`5`2;@@=6X$@9^P`'!DP63^>0AAG,^OWW(5`0`$]"?1KBQ)KTJ_2\IHAC$@
M"L!;R=`%H'4+4,G0;T%0=^1A>00@=&]5(`;PA7#MPR1P`V`"8&5L<,-_Q(__
MOJ+^IS_^JWZOOK/_1#Z\?L"_.[[)/_[-?M&^U?[:/MY^X
MK[F_NL__V5^\[[W_OP](S\]/T%_K?__2?^V/YR_'STN_U._5_]M/]M/W%_=;_/?WX__X)_AK^*_X_DW^7O^3_H!^?I#^H?_>HQ*M%S`Y0">`(!L`:\N5_F840)_!0$#&0(5P$T#+(1YPA:#)X"6`),`@*&;[`V`;
ML'?+$,F@RQ%O<`\BY&)U&2!N=<&@"U\,;__%I0]T9?"2<%5@"S#"HD&P?Q$3
M$A*%P,'@)]'*DL,S<]\;`/6`#A!!H`]5+O%_\H__\YHQ\!=3$E\3;\ZE$?'*
MD/^F``]6$+`1P"@`6-#*H1$A_Q[!$2$.,!$@P>$/9<'0RP/_H+"&<&]Q$$`.
M]1"APV\=+^?.EA$B#G!Y8A%P'"@7!C:RDL$#$1X0]6*/T/UW!!L"MH<(PF4"_%P(?.2./))\EJ!!A+H\0NY)A56!X$=&&<`X28A\1_Q[Q+;""0!&$
MB2`1$LG!RR']R:!L$"##,2VP#=8?X)*P_RJ_*_.I1(`,Q'!X""3*7__P7,U
M(P\#&,SLO_B?[M_O[__^+_3O]?_W#SN?.=_Z/_M/__Q?">_^?T8/`)\!KP*_
M`__!-\%[P;_Z%\(KPF_3R\X'_]!'SH_.T]67QE/&E\\KSV__S[//]]8GT'_
M0P]$'T4O4R__1T]E[TEO2G]+CTR?3:].O^]/SU%/4E]F*S(+/V*_#5[QS!!O
M="T6AC4$%\X5P_LAP,N!:89PI?"@=<&P>7#^:,,O=%_.6B9'#O7!X7EPCB?+
M`!#A$;%E9&MB2!S=<80+L%T?P`@TKYWRS`/9,L`$?"E\&<04.QN4(*@=L!I#O`Q@!;S51:P
M8R'`;I^@;2]!:/LOX2_A97"PP5#+(82/A9]UQ:5O+T5M%Q$55&QP:/\0\,L`
MCZ'+$A83GZ`W7U4__V$?5U^23UQ?76]>?U^/E4__8:^,SV//9-]R;V;_G[]I
M'_]J+VL_;$]M7VYO;W]0WW$O_Z&O5`^1SYK/D^^4_[`/@#__@4^67Y=OF'^9
MC[)/FZ^+S[Q/
MC>=N)R)0:XE0\Q$`C_)M=8I`&^,ID(/0_XB`N^!X\8D2Q2`IH#2@(E'_>/&)
M4<7P>K`M8!_K#E/-'_O.+S0V;B""%B`P]A'!AT`O(E`0$!;SBR%AMLT^T7QK[>I-QAS$6\EI-3A1?20Q@A
M1$1+0+[@`%-#55-3+DU)`$-23U-/1E0N4$-/32+&;&DPL&0=O+)FXW"(T([`
M>TA9`%!%4DQ)xxxxx@Y]]_X(_AG'U]QQ'C<(B`X[T@QV$Q7'7%`,@8Y<^_YM^Z
M#\)BZ_^MG[F!0<9@]]E_VH^U:F)SC]5O#58;Q?_/E']@(E`PHS`3)S`Q@!_Q
MW$U3(/"*,=+QM[\! __P<_PI_#K\2_Q<_&W\?OR/__ JE_*KPDO[C_Y3P)/^V_\?_\7C_!?\6_]
MW_[O__\!#QG/_P,O!#\%3P9?!V\(?PF/"I__"Z\,OPW/#M\B+Q#_$@\3'_\I
M#Q4_%D\T3QAO-E\W;QN?_QRO';\>SQ_?(.\YKR,/)!__)2\F/R=/*%\I;RI_
M*X\LGW\MKRZ_0@\PWS'O,O]&S"WZ14G0>5'0-.\U_T]/.!__5G\]'SXO/S]`
M3UE_0F]#?P-$CT660DQ/0TM1\%5/5$5-F5%"7[)?+Q]@/V%-8A]%Y%&E3W5T
M<7[@;VM-AT"/(']@2/>+4-$Q@\!I3)!AD'C!2=#L9VYKD-]`=$V;:Z%FL?-M
M0HI`7''I`6XB6@](+\]).EM`2A]+*U1AC_#IT*]1-F@@33].035.WRUVXOI/
M>(!GB-!,(6J%=N-<_/HQ8R)28_I)T(*P9;!E'Y506$)-FV)/.49R<[":.E4/
M+WR:xxxxx@2.HP^W=QT;!A@V!,,/+/9L^-\]UH,5OE!8+PZ/!`3%"/0-7C8'/8
ML"Z%85UXCWF?WWJO>[]\S^EEUP!T?G]_CQ';UU=E9(A@M8'D@_#$W]O!2\H'O@O^$!U+@Z#HT.=&P389/AU^(;_>)?XJ/EF14A/",3XU?
MV^;Y2W%$98&QV'#10_'EO^8#^EE=6)J]Z",
M+W^:G]O(D*^1OX07C!!K(';B7M'_^A+Z(_S)6%@/@ATH!+P*0?KZ4OIC^G3ZA?2'=0:*M__ZR/K9^WC[B?N:FS
M+UIO6W__7(]=G[V/9PU+(5CE9;^UC_=GWV^5P?!08_^\OW"/<9__2Q],(72/
M3D1._6KPTV#78/NID9RF(5?/6-^`:K]_P(7_R3_#/[\$P?')`<5/QE_';W_(
M?\L?S"_-/\Y/SU_7=T[D;W>Q$"!W3`#WD(&`>D-6$$-K4$P`@;!T(&:!3(`@
M:V5Y8F_J(3X@]M!K$[1_VF^$%BA7^#)+*?AM;U/1,..P;FB!H?:0T3!FA,%K,6FQ4B`T,G#X,9E@:)W`5^8_YT^$!W=,@&N=
M`'M$?7/8_;?A`=S=6-+P%'@9G6%,&R/\&/ET?2@G0!T3FCD$*F1JK$@;SQ0=`9Y
MA9!^($E,15]$,$5624,*4/3R7U#X3U)4^B_[/_Q/!5\&;_]H/OW?_N___P$/
M`A\#+Q.C?_DB"*#9\&WP",'C\/0R4/Q$3_5E]:$3$([PCO#T.<<.7P]OA!90
M4R]5X.5&_PM_#(\-GQ%/$E\3;Q1_%8_'%I]/&X5A;75NJK`(H/YIA=#Y$PCP
M]:\<;_?/^-+_Z3\?_]0OU3_63R0OV&_9?__:C]N?W*_=O][/);\FSR??[3.5
M0FH@Y/-S<\`Q0"G`_^6A<\"!8&K0="#CL!IR^1'^;PCQ:T$)1"K/-F^$%@FE
M_RX?+R\A'R(O(S\S?SM_/(]'/9]V&PHJ4TU!"U!#_5#`1/5E*8"=@4)_0X^$
M%OE!D2!BY!"!4`CI18]&G_]'KTB_2<]*WTOO3/].#W8;^ZI`JT!KY//TYE'O
M4O^$!_]4T"G`4;`)@^5':;/Y$[%"_U7?5N]7_UD/6A];+UP_74__7E]V&^25
M86]B?xxxxx@5"K!?_U8/.C"/`$D+M_VH/:Q]L+VTR<>,WHFU_^VZ//HUOH\,N#W?O,"\Q/_\R3WP?-&\U?S:/-Y\X
MKSF_?SK/;.]_3X!?XPMUA0DU=WGC\&@@0-![X'8Q>]!G^xxxxx@86WD$/DB\]!P
M_XJ?_:CF=`B"*F."3X-?>0]Z'_][+X>OCZ^0OY'/;[P)18'C_B".P!YP&90_
MMG0^>'Y\OH#^?H4=^-Z'?HN]?\WEM'J#UCL!CI0%N8'`9<2IS"36#4;"5HDEO
M4F5G*I#[]*'YQ$ESIZL_K$^M7Z9/_Z=?$,^N_[`/L1^R+[//M-]WPC+U@P@0
M;H(0*?+ET'0X=7)N*J^]SV-H4U0`05154U])3E8004Q)1`IF4D51_%5%RO"Y
M[[K_O`^_O\#/_\'?PN_#_\4//IRX<&5@*@'_*I_)/V-99>!SDQBA"9$^@+W'
MX"#3@)40":'YQ$^!X_Q%>/xxxxx@R"`I\_.___0#]$?TB_3/[*OU,_5W^+C
MPB@ID&1O8W66`'.A3RI0UV"68>AP;B=4L&N?09"3P*G`F6$:$G0I&C+P3E5,
M3,S/WE^$7X5O_X9_XH^(GXFOBK^+SXS?C>__CO_D']2OYL_PY71!*<`J$%?7
M8)8!":%Y!)`@54!L_G!`@)3%=8.5HD(/V']$+O^!X^MO['_??^"/X9_PS_C/
M__G?^N\^JS^R53*901J@VM'_ED&90+B4&3+I(?_/`-]CAN.V+#^R4T--&C)U
MA"I0_C\"SP/?!.\%_P"!\)+_\*/PM/YWR6?Q`_8VCJ,'"P_V60+>!V<->@
M\&!`,)40J5!_/X`8\=>P=?83T!+"9+=F_FD?($'8EC$4#Q4?%B\>[_\?_[]/
M%\\8WQGO&O\<#QT?[PSF/_@-I7:$*25O)G_MC__NG^^O+4_QS_+?\^\JC_8/
M?_+<\NWR_O,/_&EI8P:WVI`FQ4H1+"_;$2X"'Q:?^50';/-1\G;RL?+"\Y
M;T%OKWX_0O]$#TS54&0P;$=O_TA_-D\W7SAO3*\ZC#X[/T^]0%DM7&!*3TM?
M3&Q9_<$W/'"E0.B0=%/X'5BM99!S)#H@_@!I>==0>4"N;7:PJ5#78&:"(&/]0/='_
MED&I(*EP1:%DP#*P)&!A7R]B;R!ZJ8`A02UD,RTWF#-(0$"@=5!S+F60?G)E
MXE#Q6,EG=U7^xxxxx@3[Q+T),3T-+S'#X3U1%5`M7GW)_M3T19.TV$,C=3D4A434Q04`)]?"`?`$<0`0```!X```!M`&4`

M`"\`<@!F`&,`.``R`#(```````,`)@```````P`V```````#`-X_Z?T```,`
M\3\)!````P#]/^0$```+`/(0`0```!\`\Q`!````6````%(`10`E`#,`00`@
M`%L`;@!T`&0`90!V`%T`(`!)`&\`4@!E`&<`:0!S`'0`90!R`$0`90!V`&D`
M8P!E`$D`;@!T`&4`<@!F`&$`8P!E`"X`10!-`$P````+`/00``````L`]1``
M````"P#V$``````"`4<``0```#$```!C/553.V$]34-).W`];7-F=#ML/5)%
M1"U-4TM`-RG0,C`0A`:M+D(`"LOX8(!`````````"]//4U)0U)/4T]&5"]/53U.3U)4
M2$%-15))0T$O0TX]4D5#25!)14Y44R]#3CTS-34S.3``````'P#X/P$````:
M````10!L`&D`>0!A`',`(`!9`&$`:P!U`&(``````!\`.$`!````#@```#,`
M-0`U`#,`.0`P```````"`?L_`0```%$`````````W*=`R,!"$!JTN0@`*R_A
M@@$`````````+T\]34E#4D]33T94+T]5/4Y/4E1(04U%4DE#02]#3CU214-)
M4$E%3E13+T-./3,U-3,Y,``````?`/H_`0```!H```!%`&P`:0!Y`&$`

M`%D`80!K`'4`8@``````'P`Y0`$````.````,P`U`#4`,P`Y`#```````$``
M!S`*[9515H7``4``"##6;Y!E`HG``1\`&@`!````$@```$D`4`!-`"X`3@!/
M`%0`10``````'P`W``$```!,````4@!%`#H`(`!;`&X`=`!D`&4`=@!=`"``
M20!O`%(`90!G`&D`

M`&,`90```!\`/0`!````"@```%(`10`Z`"```````!\`'0X!````1````%L`
M;@!T`&0`90!V`%T`(`!)`&\`4@!E`&<`:0!S`'0`90!R`$0`90!V`&D`8P!E
M`$D`;@!T`&4`<@!F`&$`8P!E````'P`U$`$```"B````/``P`#$`,@!%`#0`
M1``X`#,`-0`T`#D`,0!!`#(`-``X`#D`0@!"`#,`0@`Y`$$`1``W`$8`,``X
M`#8`1@!&`#(`,``R`$8`.0!&`#,`-@!$`$``<@!E`&0`+0!M`',`9P`M`#``
M-0`N`'(`90!D`&T`;P!N`&0`+@!C`&\`<@!P`"X`;0!I`&,`<@!O`',`;P!F
M`'0`+@!C`&\`;0`^```````+`"D```````L`(P```````P`&$.+H0UD#``<0
MT`@```,`$!```````P`1$``````>``@0`0```&4````M+2TM+4]224=)3D%,
M34534T%'12TM+2TM1E)/33I%3$E905-904M50E-%3E0Z1E)),2\Q.2\R,#`Q
M,3`Z-3)!351/.DY41$5614Q/4$524TE.5$5215-43$E35$-#.E!!54Q`````
M``(!?P`!````40```#PP,3)%-$0X,S4T.3%!,C0X.4)",T(Y040W1C`X-D9&
M,C`R1CE&,S9$0')E9"UM);VT^`````%T4
`
end

---
You are currently subscribed to ntdev as: $subst('Recip.EmailAddr')
To unsubscribe send a blank email to leave-ntdev-$subst('Recip.MemberIDChar')@lists.osr.com