Search
Module:
Directory

   Desktop Functions:

   Smart Device Functions:


Show Recent Changes
Subscribe (RSS)
Misc. Pages
Comments
FAQ
Helpful Tools
Playground
Suggested Reading
Website TODO List
Download Visual Studio Add-In

Search Results for "usb" in [All]

odbccp32

.

Õ8%ü,…‹™N¦½‰àrp i5eá’5̯۹âÖÞ¤nàîþ‹æÐØí¯bNzc©Ïx@ï~ñȒ‚‘#ƒnÔ!¿€tӜõ:§ŠUãt³V–¿a·íN§¨MK˜¥óCS@ÉÛâ62:·aµ¿bæk»È@ã¡ā5’‹Jü]ˆ°æF¤ÚVøPÂêù»E&ŒfyÁÅåυrøpùŒ‡‚6&¾(Îrˆ—ä¹”lel`·‡1a78K¾C\™M~/ílû áQVÐĺÒBݨ6n….¾A¬Í¸%»î²ûólïVíHr'Þ9çë~ŽS%¾ëMQà‡2’õG@¦ó…:þ?Öò·v18ôìÿ¹PwEݖƒ»a;=‘‘‹1g²ƒµâ…Ü%‡Ù=[oó]$DUdV¬¶Ò«a;Ý܅? ‚ftvÊÉ Š,ŸƒUMp%‰ÿ"\©«:ɨÈҕ€TãµÆIX¥e!Å æ—1Ûvâ$8ZÍBɬ¤ µ’nžÚZcý®ò<Äq´¯RãD¥á´TS9¾¡b°ŸúÒpyPºr‹BfòÌЍœ…drê<³7bR²¬÷Á”R2.¾N ¿p`БBY‚Œ’­ëÏI­§i8Ù}{O“ÙI½Ðoš(Œ˜U¿ƒ‚g3‚˜&†w¹A%V)p==”ù7*äX]Öû‚½¡ ùô;ÙSŠ@Vñ>†Ä×"K´NÓn´ÐÓŠL¿Oè4½ ² Á*u‹6nܞèfóîG>c»3²´Ùg'-åJå%ª¼ï&amx&D‚SgØÒfd2uSbT¡Ëˆt~&þâþb-x·êq4ɎwIãɱîÏ.Št>ì˜M‘cŠf±»f3Õ¯ÙT2Vk•¡àÓj.ó¯ÈMn-¬)ÏE‡SY>Òª-ë×+¹‚ijâA™u½d"(Êê?¾aòë7îõ=N_Xœ¡Ñƒ;Å![ûÆs)¾iŽs5‹µôÀöÔâpoœƒÈC-ÄÚmµŸq®VføÜ1ó°jjØØëÉv¾¶ÁҏB*¼ÈŽsFvWMc]ÈìJ)ý¯Óˆœµ…ϬÁq\°-ÚÓC;Ò©„.´Ý-b{Yh ÏKƒ6¦ ´>A>ntDƒvÓÍ9´—œ]Ò¤p>1Y¤Í‡xŽ?k¼Æ÷®¾ºnäzgw¡8• Uæø<Ւ÷Ytq‚C[á2ätF³˜ÓNtEhJ‹vЭÌyI𠚊-,ï~¶ÀUÓíC,à˜Ç,M "lÊԄ‚½çè(Ày¹‰—ý•5öHT¡H÷Õ/–¦éç¿RÉ<èéë/íïúE£æ{û¹²úSåTQøèTŽàI“ç6 ަùø×)¹µ €F-KR(Kr“ZŠ!¾H˜ç{{LÌÚÞ;k€l’{E–®!ë’RWÚÖ³‹ïÿœ$«Õ2«ƒXN—r{*]V±a_p¥@”JFü¶Âqˆ‘³2†¬ýBsªT—…½ë/×ñaoÓ­4¦éNchzsOÂtnMëµ:`ã£qdPù;Ú¼¡9Z™ZK”Ø=Ù ’õ1£¡`ˆª$ɾ±KµùlLãÏìB¡ÞuXÔ3?tUžsúpªÔ4ÝÀ“@eÎ"š÷ڐ3PԀڍϛš„»þž³¿6-/vF‚ˆBKéEâv;üc}8:{ËàŸ¬9™b1(‚®j6¥e“í5hÍLÿÉ1"„Ý7QòŸ±äÜ¥Ø8.x\Î$é‰è –M敯Þ,óŒµÃ‘Ðkb‹£9#×¼ü7“åžšž݌å#µ‘¨vBO%ß)ì„Ä·IÉêف›½[ÁYÂ]õÕÿ֊q3Åpæ aâÆËrhØý0

userenv

.
Import
credui,advapi32,gdi32,kernel32,ole32,shell32,user32,glossary,coredll,rasapi32,mpr,netapi32,uxtheme,avifil32,aygshell,winscard,crypt32,secur32,wtsapi32,shlwapi,winspool,oleacc,rapi,oleaut32,winfax,odbc32,msi,cards,powrprof,urlmon,xolehlp,comctl32,cfgmgr32,hlink,ipaqutil,quickusb,Constants,Delegates,Enums,Interfaces,Structures

winhttp

.

ÌãêŸT$­9Y–ç*›¥õÅ$."}ˆlí{6b¾ý}ŠÜÊwÈH·AïlºF*t—[up]žc)²P´#UsBÐI£ Lßõ<#åe^‹²[¤Ÿf|†7c.žnnIþ†Úmd$*ÇálóÃÃ÷™­3¦…R …ÃI}/TH#£#J?IƒaÙ¾šŽJoD;;'¾Ze’ M¨z”|R^ÅV üüI_ñÕ&Û”Z:Ո»Ÿ€î@§’áö:ÊˉaAŽÚ½>ÿ¿/¼ÐïMr $Êßc°’\ÕI½}¥,}¾]%=å2øb¼Íœl‘ýïɃ Í?®¼jBi ôœkn„:žg»$˨&2‡¸ïªã[ÅüpÖ$n

msdelta

.

\¯X"ËN#¾¿Ð|Ìsx5ók@o¦Üù¥;L¡%Æè±fFVÐ]´ÃÁNÿ@§SmöC‡0ž-˜Dšb^È3zky)±‰lEv1/<]„®Þ]÷ª(•Эnä€ÞϨ-éTðNq!pIÍ­¥-êsŒâVãÛB¢ÅB1Ëqçꂛ©TQp_ȾœbŠýâ/.2™þþóÁx/øÞ¬Õö|ªYʨgÈß_í8_g蘏ò¨?¨ÄÕc^fÒTnÒJp” áY†¢àÙ±ÙÐXEI—3ö¢¨…A¯ûГgZ?h¨Ÿ¡V÷{Áï öñ„Òïì)X½§9J†òFwèlªÌa ð›Ó¤üÇòÝŹ™,ö¬í‡Qš®;C£öTÉÀœ—BGŒ¹hnvƒ®æ(r« Æ2ƒ'?Œë"¢8œ8ÞD4InÃݝq´÷w$¢0™W¯WÃô!•¨lˆ­P-i®¼‹u±÷)'Î`XBÞ'Şh{Éú¿R½-ã#ü-mÕ²±dõ8b|/û¸wU=΁Ì!{×½cx0?òQ‰”ïh¥3$?Å¢núNFº€zí ­E$ôìùIX¼çíâbKR©|¸ívP~꫙|yR²à²v=ò­³Ž÷äI]¹I™WíduSBÇÄ1@;FЕ}ZõVÉ^ü'4¾#™fÙWÆ={ô_

rapi

.

ŽÔ¢ïö™7Á2Qú'”=,fà„oT7´{߆8ŒçÞ¿[d#9;閠㧷[¶TÃxîn3ÉãH24Eù—x¶ìyïm8¿€ktŠ ‘ö{ÈĦ„ú°ì9À±ü¼)a.ƒ¦ÄÝ?¨|‹…y§a)Wf¦Â¬‘w±õ]Ÿµß ûÚQGzHº˜÷Õ'Ëy%ô˙=³Óþ–ã¬[ ÌØ«GÏL>da£ˆ%ÅxýsÏ{±á˜;{÷Xµ|¤±kø–j´›%ìžIx'ÑD°ÞދÅ9cáëä±êí]!Òvo$u’­Íj“@ß¿l›bOdCôÔçiFÌõ?8 Ç×íˆÎÝÀkM¦¢¨n@ ÃD”4ã¡ VL,nδÂ!fQZ2êãi8uÚ#ŒÀm¤ÀTþ\QÝYüoŒšèŒÆˆ£QÓ$¼Ö7Jé¡Ð¾Ò‘ÔíUæ¹nìFŠÎMU%C²¶•Oø“˜›b!›òۊ™.;ÃclÖà蝟Å3˜ÍÕu–vœ5ž“c/=Q»uIåvÚ藹­PnuæÄh9t@¼£ìêÞ¦©£XŠÎOàÂB œAâ¬o–¶E.ÆåSusBUæðOÚU.ők Ãsiñ-3'jú¶GÇùSÍ2Ñç&ô0 ;ÎÆ&I‚²=ï cJv{a†b×Ç+§tü˞„Fa<4ÖËê{ܹ».Vú‹?UsLÀEÅú‡á;¹NÔR’v[¹ZW8õhN×dÌQ1qi0 蔺æn9ÒïŠÝ%>›À>4bçeÄü¾`ñhN6µù”f½C®¹º”B[u‘YiµVéäPǐO‹×9”";²ß½®ˆ"¤Å®àï¬/¿Ó’²µüÖ}j…j?«Ná9+¸' sØhŒOOÚšÜ&~'‰Õ•Ï!ê-¶RÎÚ]Xÿ:·¯¦­΂Т£ø/}Ò)tì)Nb±žHÏÃn$½‚H›™I×`Go˜

.

F\íq€ÎFšpÀ¡švÍd‘ˆ³:áúV»äϱd{Zº2o|šʤ§.ƒÏæéù±þ€UДw­øTM¡¾ö¢ üÄInDjôWü©Å48– Oöc®o:Vc™¹§¯ –Q€Gv÷ðl…·ú¥hàëúHW`tusbÆÿd7"Cs…”úH0n5Ï+‰À߅éë¦]ˆ¶Â­9À<hs¡Âû™H=µnû+vjèKqå±ôÙ^f3Í^(µˆ1íß^¨)\Ÿ¡N¥ ցUЦT

user32

.
Summary
This Windows API function can be used to request to be informed when a device (USB) is attacted or removed.
.

    public class StatusBar

.

    public StatusBar(IntPtr hWnd)

.

        hProcess = StatusBar.OpenProcess(ProcessAccessTypes.PROCESS_ALL_ACCESS, false, this.OwningPID);

.

            allocated = StatusBar.VirtualAllocEx(hProcess, IntPtr.Zero, length, (VirtualAllocExTypes.MEM_COMMIT_OR_RESERVE), AccessProtectionFlags.PAGE_READWRITE);

.

            StatusBar.SendMessage(this._handle, SB_GETTEXT, (IntPtr)index, allocated);

.

            bool success = StatusBar.ReadProcessMemory(hProcess, allocated, buffer, length, out bytesRead);

.

            StatusBar.VirtualFreeEx(hProcess, allocated, 0, VirtualAllocExTypes.MEM_RELEASE);

.

            StatusBar.CloseHandle(hProcess);

.

        StatusBar.GetWindowThreadProcessId(this._handle, out pid);

Constants

.

    public static readonly Guid GUID_DEVCLASS_USB = new Guid("{0x36fc9e60, 0xc465, 0x11cf, {0x80, 0x56, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00}}");

.

    public static readonly Guid GUID_DEVCLASS_WCEUSBS = new Guid("{0x25dbce51, 0x6c8f, 0x4a72, {0x8a, 0x6d, 0xb5, 0x4c, 0x2b, 0x4f, 0xc8, 0x35}}");

.

    public static readonly Guid GUID_DEVCLASS_FSFILTER_CONTINUOUSBACKUP = new Guid("{0x71aa14f8, 0x6fad, 0x4622, {0xad, 0x77, 0x92, 0xbb, 0x9d, 0x7e, 0x69, 0x47}}");

.

    public static Guid GUID_DEVINTERFACE_USB_DEVICE = new Guid("A5DCBF10-6530-11D2-901F-00C04FB951ED");

.

    public static Guid GUID_DEVINTERFACE_USB_HOST_CONTROLLER = new Guid("3ABF6F2D-71C4-462A-8A92-1E6861E6AF27");

.

    public static Guid GUID_DEVINTERFACE_USB_HUB = new Guid("F18A0E88-C30C-11D0-8815-00A0C906BED8");

.
Summary
The Globally Unique Identifier (GUID) for the "Interface" for a USB Host Controller
.
Summary
Used with DeviceIoControl and USB_HCD_DRIVERKEY_NAME to get the "Driver Key Name" of a USB Hub Controller
.
Summary
.

const int IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION = 0x220410;

.
Summary
Used with DeviceIoControl and USB_NODE_CONNECTION_DRIVERKEY_NAME to get the "Driver Key Name" from a device on a USB Hub
.

const int IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME = 0x220420;

.
Summary
Used with DeviceIoControl and USB_NODE_CONNECTION_INFORMATION to get information from a port on a USB Hub
.

const int IOCTL_USB_GET_NODE_CONNECTION_INFORMATION = 0x22040C;

.
Summary
Used with DeviceIoControl and USB_NODE_CONNECTION_INFORMATION_EX to get information from a port on a USB Hub
.

const int IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX = 0x220448;

.
Summary
Used with DeviceIoControl and USB_NODE_CONNECTION_NAME to get the Device Path of a device on a USB Hub
.

const int IOCTL_USB_GET_NODE_CONNECTION_NAME = 0x220414;

.
Summary
Used with DeviceIoControl and USB_NODE_INFORMATION to get information about ports on a USB Hub
.

const int IOCTL_USB_GET_NODE_INFORMATION = 0x220408;

.
Summary
Used with DeviceIoControl and USB_ROOT_HUB_NAME to get the Device Path to the USB Root Hub on a USB Controller
.

const int IOCTL_USB_GET_ROOT_HUB_NAME = 0x220408;

ntdll

.

IO_STATUS_BLOCK ioStatusBlock = new IO_STATUS_BLOCK();

.

                ref ioStatusBlock,

.

[DllImport("ntdll.dll", SetLastError=true)] static extern IntPtr NtQueryInformationFile(IntPtr fileHandle, ref IO_STATUS_BLOCK IoStatusBlock, IntPtr pInfoBlock, uint length, FILE_INFORMATION_CLASS fileInformation);

.

Declare Function NtQueryInformationFile Lib "ntdll.dll" (ByVal fileHandle As IntPtr, ByRef IoStatusBlock As IO_STATUS_BLOCK, ByVal pInfoBlock As IntPtr, ByVal length As UInteger, ByVal fileInformation As FILE_INFORMATION_CLASS) As IntPtr

.

    static extern IntPtr NtQueryInformationFile(SafeFileHandle fileHandle, ref IO_STATUS_BLOCK IoStatusBlock, IntPtr pInfoBlock, uint length, FILE_INFORMATION_CLASS fileInformation);

xolehlp

.

L¬ú¿”Q+É+‹Ý7;1ÒzÀLÔiŠ©dŠ´ÂMû^ uüDVÛ t‰G-Usb&‚{]Øë?¶H}95P…œ·ð” £ãóqþžÙbð´›U«ïg(åkÊ>ä‰Ã‹§z&²Û“>¢³±s+Jè֗ûäbïv€HåRdŒ&r4ý༶~¾s°5îVÈÐÜð&åžÂ lãßü8Â

.

íó¾%C뗪•ùАÅÎ1&Rô ‘¶õQòØwçCrÐzžaÉ>„œ…ÖÇÕož|ñG5Ê¢Êë­øÄuӖêù¿” #¾òÃÁY;&ÿäy”IâûµÑÑݐçT8ĥ䶷©lZur“ ¬UârZ)4är' Ž#?d&òN$€J>2ÿQQÞ»¡Âf1ä&ŒºóëÖ85œgeÜîK½Vïÿ¢óuĐºU̝®ûABDðAX‰‚Êû8å~ÝÃIT¥§ =·kµz‹>/wY>ˆ¶£è‘¦§ÃÌepö³Î-bÎQš5ƒi… ç±í(›m”è´Å;’Y.@ÿ¢È«±usbüÔm³xÈ*}À4Ñf¡x6³óh:Ü£Òº}&O“áZ¤õ/¦½ËÅ5ô„Cý&ø—hÿYwnjvh_Öi‹§u²t1uæU‹îË¡xP2T”CÃ}šëZzWžÀĕJ<Œ——sÃú‚œÚ9hNù"#)&xR÷(o¿ôî"oÆËq#V— s¥м^üD£s©N‰ë=ZÀDäÀˆ‡&!Úìن(Eñ7J´Ýÿ‡*}oY嶟Àiõç˜åf`[>[

powrprof

.

u]ÈÎI9¹v«Çz“jé2¶âòIe’B|¤ùHŒÉìé5ÄK…Ï芯ô®ªu‘4Ð.H9ãS¿–¶a|TƝ颽8՞„—š5;j°ò øÞå¤ÿNڞĨûüq•¢3|.U‰(µÌ Ÿ’òÕã®DæAz‚¹uæâ{³ÜàŠÍœRÚºüõ'ư÷uŸE²ùK:öÉMðv}º OK¼Àâã.÷û{,‹»êø°œÐ¥5O{ýßñ~$XÚ,­T…| ÂE/ŒÀBVÑÚ®,ßށòëBöxÉÙÑ­&¢V‡³N+cOnÜGŸ:%2¬£Éoû€ºŠÃBÿ&ñžJåm•"°žž—|ïæ?ظصsúYÿ8l‚ª¦NuSBÌÉÇ£¦RA•rê‡g‰Àœü›rpŽq&tJoÌyöÙ¾.zü$‚Á‡’dŸû¥±¨ƒÜO $…ãé.У偟`Шòa^™nÍü¦ÎV­|ºˆ«²3ì«\|{)=)ð4~¼Û¦Â÷ƒ Õ‚l ôõ޵G•¦Iµ||#n ‰Þ"åNrÚÓ%sB¬å –8JÏh^~X'˜=Òaóx/3MÉB­yŊîs¯ ´v…ܧfcT’|ؗx†æ¢–́&(òyÔ=ȍüËhµÍ:;ÂLmª[1¬ *òkv>ÚàjÅWd¢)Ö+

advapi32

.

Fž,?´ÂoàuSb晩¿á¦¯ç9›êìN8ƒêÀÏëJDù7Ðÿì3ÎV“-¶ð

dhcpsapi

.

PÂÏ»zˆä¨ièÅÒ8%Ó:pŸq®¬ވ…k*w‡=AÑ ñ¯|š&¨|q“„Wö™…ùløRU¨tiÂÕ¿³Q‚‚ßµÄ#N¯¶k})z hJÁ(L@]×Y)ÿã®usBüϹNÐçP"˜E듿T—e‡Åná.·™•Ás‚ɍ£fŸž¸X”MŒ¯vp\’nm»þ‚È“%Uðෝ  ³ßFôò8¦VD„—BÿÌI裲|i´

.

§áºµG²Õ$M€Ù–c‹ÍT$³ÊñS›|Ay'$Ôíº1ų°|Ÿ$;“S»ç*EemŸ´¿›cAŒ÷aw7eˆ‘…”ÃÎA66GóÔ%ã“E8·SÊ%¯9ßè*YS<Cq ¤Ê>`heb„p›Ì8¬CÎíMBÆßUCÄËøX½âûŽ×D?³Qüm*R/[ë˜v/Û&Mûõ±·>Ð;DK(+­%NܬÊ0SÖ¥Ÿ¢Ö¨ Y7Hl›zóت¾þùÚiúäÒ¿å y þ®{—RLüÙß¼ý{pÎYcˆ,º~5ØøÌK°{ßâHzǧM›\jæç\ÞøûˆÃ4¤„í†ù§…º $J~qíâö(“d†¹ixŸóö#Ë.aÅʉVš©»šr½V§tK•1ˆ›<8éÑÒ£kýÇéâøÓ„¨ˆj¬)H¦è{²«]>à|è ÕÚåEb>Qľi¹#`[b9ÅTà Tå9Ð(†Àõ®QÿëoKæ qUm޹00ƒi?,@ú·˜¿³—IDšô'ÏݱÃL.5K”ý©>@ã4æàà0âmî[ †ò[2\eþê¤`$æ<ÙMƒ¥jMä[HÈÙÆƒÑO£UÞäÂ6¥±Þü‡„¯õ Ð4„Tõž¥(ËMN,¤XÇՏì†4®‡:C¡”W4E±ÀË1£±y HÃ)O" |M#x‰ò|ÇZÈþý†_¡Qžµkz„ ÄÁKó"P®í–ཱ%ÊХλµÖt^t| ¨Q8§àüHö/é³ecÜ»bWÞáíù™†I(ŸSæàT½ÌpØä>[„–ÛŒ[7J‚-®K¦mˆìŒiÞ ý|-è4ã*‚w•Øj¯Bçº^i¥’궨;ž¹â¦X»O$N–^®`펮Ž78Åû¦#o?Ÿ¸Ç]ü „²zzҖrXã%>a¹KÞâUsBvAùÓQíø[Ú=×TØ»-)¨²}ÌCº¾/{7™*ÏÅ

.

«ÉÓºKÂÏsÇޅþ/‹B£Ì8KZÓ  wFÂT¤¥Pǽ¥Û«‰'û¤°4?¤ùïòܱt5êYÎáÞУã€Ú‡Œè—e¸òè€$Lѡ̛Ì3³™A„· ä€Ó@Z+ê.èÄ݂íp¢×bÛ±Q¨“ÛÛ)»4Ã3Í4¦¸º&áöèi0°}iºžÓ;½Ü½2d©êvÇájîàu‰)Šï-%xeI¹â·eîý,ð»á†ä•Ù¦b®8æùáºÖ¸„Û–‡Sº:õ¤…ÿ”÷5q®l<z¬²Ë‡¤6Яêþí¼Wì=4䠈«óòetxå;[Ëiixíªz“Û%Áu‚=Âçj¢joгªG­ÊQ‘6JOYñ ΢:ßÒ5¢}³œ«9MLi¿,Fã>ņ8°B‹ž–Qºða;ëAñ9 ®2Rð‘O¶Ïfïæ¬}Iè×FMÁK2°@Av\‡8Õ6á·¿U´m ð!&< °˜òÛiÊû÷…°þ½ÐÅÉ6éë—óÀIœbý,Æ´ ¨Ä"¡¸Ï"AûÔ`Ú!JÊÂÞ½ŒUzUð<첬lr¤½Ä«—z1pˆM5î/Æ.ªÕÄuã]»Ö«ì°Ù Ë0F9«;»nßÄß&ÙUÖÐÐ#yªþ·ÛKM8šïaÀñçE×yÏMOÐÅèòõ^x—ºN„,/z1 ŸÒUiÈ;’O^ºEú=u*-é—[Šò?´ÎÈEó!)!–œÃ=îßáuuý’A]dXL\Èâù:›ó–•!Óö^ì‡0ó½2 žÁ USb7ŒÂHF$¯z0ý7¥É³üÔeiœãY`òHš"q‹÷EBÄ)´Ìƒnå5Zògé!5>”M'úÆÂøSwísVèd“­»§–ÓÙQ6J°ºÙ¸ú ëɋ¨ÔJ´ „5´éŸtBjŒÀ¿‡’“u æÀq®74»PäÈÍèÕV$ˆ)‡üûT’# êæ6•;n·ÛÍà.ñþÁvÆJ”5$½Pmâ\Ïš¦s]×t)T—ÖiªØ¼¶޾ÚCK¾WÁƒí3¤ùÁåÕN”p»Êtæ‡B@h$~{¦sOdmö«ËªÃ­ª;(q¸C-¯èjUeyâ]Æÿ\îjfaš†uBÊǎ¡ú)ãyîsBŸ ¡}` l‰fФ»M?|Lj¬ù ‰ŠQ¦H¥[™¦EäzÑ4›kN&ð?š°Àu˜ÿÍÜÄ#)ܖ;̳WŸºóJÚþ¡u´ÍÝÄÔ°SM4ªR³|¡.zb«¡Io]žtãÏT„ª°–X£]x×±“–W[Ü\kêQ„ºö¾Ô¼9:tíÕâcn|ðGUÜ#AŽ™¦í<‘Ÿ‚{ÊzÛÈšÑd‚S&zµ#Nïa*©yBgÎ^-Ý¢ö§FP3²ýTñFÂñÚJtgÚ…Àƒ¥×Ù1%¨¾û·ùmƒ¼|“SFç¾]C_‘P"6þ ߎÑ'÷–ø º´¢¯ÊÔ´Í'ö©Saiç9ì“ÌU“´xÞB” †ÄÀuYÎÉGüÇüS•Þ©âs¾“zudˆN»´.µ?ã'fXÝaa´QxÙɈóê…îIiõ ³›x'à!’"L0llýã먎wܧã;ÖōˆõKQãºÄ‹.Ò4䆻ƒÌ²óËEJ™¾½Ì4Ðì.?:"Ǟpƒ #<ÆÐ{E­“mãîÝ4ºçÄv½ø¿ñàšc"`f¸ˆ†-ä¿‘;JWfÎy¹Á—f’TF°È€¶NgÜ‚VSñ+‘iÃVTÊZ¯.œ™‰Vý7­¶ú_r‹+“cÛ2þ(°:ëNyn$¼œ·‹ÇáLuË3?Ðã JR¼¬»ÍQ UA ÷g¸*žˆtʅ‡ù‚ÁECdFÀ-/Šb!7b\tÉ F˜XÉ¥©íA¨ñ"ºRƒw”[ä]‰HŠ…¢ky¹ð¢À”ì ÷Cwî…H =œ˜¡kt‘µyǏEo,TùŽ‘ÒÛÆ±‹µ¬Bð 0éb+ná,ªF´Qt ¿‚ÈíZÂ}„#šb

iphlpapi

glossary

.

´%\"‘ؾâ®wiÙ9S i‘óž'ñG .6ªoG|x RºÝŠŒ³%ú¦§…ðU%›•å)aá)ÊgÃy˜b@nš&¼Jw˜4¢¢ë-‡Ï£ð ÊØï:‘V2xHò?ƒõ ª“Rؓµñ$ɅÖÁ­Ä¹F5Q¿!|ϐ団yhx5(ü³40d,tÕfpÒ§£`yÖÛIRwßïürÄèæ{Ñ4ô)¼†åïÐ÷º‹×Œ–Ï]$f¬ÅOiÃÜ2Œ•|ƒ§ávwÚoŸN>k½§ÿ tãø©@¯©™]‘q8.ƒú¬÷Úe٬쵨„ë ¹®r롁®÷L1`fIªåÕ¾Ý< ÷B#áXð_fS/ó?M"õý/µ2t8T…C8×í$‹…Ã5—ê×åpl™.U\5šó¾áƒk©‰æª2Ä*>•Ô±rzªÛÐF‰‹Õ:[¥:›0,÷¡Ç±hó|Q‰ü”¨¹.úÝ7Ñn«Ÿö´Ï$rìYõ€üNàt;ݗ¶-"¾Öô¼(Ùm챤øV?kùvÈrÄ}†6Œ5(¸ˆïg;êܗ£0²ºùû–ç„ähßßE_Þ»}9^úݺ¨h}q$¦Sžæ»èÂQø\±(XRùퟡ¡zíê&1*×J2GüWÕØ¹²´”ÈÈ=4âÓª.Á°ì–ên:Gt‰jcä¨×]èÀêÇÓÿziêøŠl7îö\…W’y=*ZÃH…4};UЧSÎ.ºnUsB¼tâêA”Íö)FLj+D{ØÈý–£–©¹/S6˜'Rlôö(æ1;œþ:‘0]ðéTKǾ

fltlib

.

ž ]C¾ó1Ò¤#ÿ‘4V[€Fub¼¥%þ:ʐZŠÅGüˆŸa&B?Zó¾lágš¨ãÀmZÓ0~Â-B£€Ù4J2¸2dZ¼Ç~|£×"Ìl ¥WÈLÿ©”-³„±”z*z¿´Ù#ïf±”&D'½buàï•1Þâ=Ê!ԜuèㄜVÇý-ò¤„Y!‹åß ûŒo†´Ô0Ë«3£øLKÕçjbiY„çRB›â”óHƒ‡ãÁ|)s\<‘Iw]¦uõ̬œz—]™Ôxl@–›zÚÇ"Jzÿv1+4읢H“”SVàt×ìzpæ&òÂ𛐠èó® øýnAVO¬ÜdæJ³]hIƒqwÚ«%‘-¾R5 bd#TtÉ%áíÅ2°RV !hm|±öÀ¶m”2g€=Õ%ð‰Ü¤tš`ƒ¼g¥wF~Y :N2‹´,ï¢b ·»çíѧÐH(`× F–@üܶü¤Täl|1WˆÞ±çÿĽ ¼³Ñ>âü>,C­èb]ʘ\¨ÿ4>6͂f<Ý<SÜËB>¦ìÝ(iõŽ¥•hnK<â÷|¸iÉಠЍÖiá‹Îiì0•5ß&>?,DÓ±EžW'w^Êã±¢¤x7›¸ëKÕӜ}Üõ%B[1÷z\XbIŽ8éã"øã"~‡>ÃÈ$Ïî%e؆iHÍ<9 Á"ˆê;¿€Ûovmº¤šUvNxô-ÄÌÌï2-ˆ6šaÎÅ,þÈSÒ5üÅ©ÿT1³[‘Ø‚PN¥€² ëViÍ¥ÈoŠV¹ n7úK‚×djE0,ӎf€%xG`t@‰qßƒó‚”{Ž\Çt­VJ1Uq¥ÛrÂ9¹oíGîÜÏ4¥-ï¸ýÛaê#/ "éðªÂW±5>wô¾ºI½•HËr Oœ…ÃÓ×;ÚЙ],4ð>ðr†åÈ„9¾ÐFïãÐò)NædĶmžHeÿIÆ?NOô\ @Śûb5ÑúÁ[yÑe í3'z»Ïa!wC# šI{… –‘ž=ó¥ÉQƔüÀ †æ·»P×^î›usbþØjbÞÑ;ïîk*‰³÷À¯"¶P²"æúfþ"Ce# _Éö¶DD#»¿°õsªrprœXpgÒ)†/ä=üP¿õ%Œj1›Ý“OAreÿÊ#]Ëô•3¬

.

»×9ðM-‘Ë +päo$’eƒ6º5õ<&޶”²J­ "e¦n¬xK¯ ,mÔâþ/od€¿ T¯S'þ‚éðai'?3é8,°ÆÐfîå™Y¹`S\I®ò³†xœwMb¨ºNô©Bôß,1^â¯ßÌ!‘àÌ1?ÌQ‡Úï¦Ù®ngׯà1Ã׃USbs2Í£Ûϲ×6kšW!ñÀŽÆ'V¿ü²³vÙ5÷ÿ~o/ïv¨´ÿ—pây‚öüÓÜÝ"U<(Ut·jRÍ9RÈ3-žá•~ˆ]Ãe^“zv$&&ëjC2v°ËÒWæ½

glu32

.

%:¤¦ùjrLÖ—îæ—¯|¼Qˆ’Ïï•«Æ þ÷’ЋânÅðS¿{ߒ£ˆçË@ópéOÇuSbª– ñ&Ys9fl(ü-qSȻԳòúr`SR ‹È±„FNJf†žh¥;èd)¢¥wˎ.s!–”YWˆZɬãåúZ¿@ƒ—Ø·£ñÔØN\ÝPù³d†f2=oaÒzŸÁZR¡µß¾‘Ù©N]A;ò4ßø¥SʐIðjþâ"R Ǒ1ÉýÊdȞ`-q;OJ³ÜÒRomØãétf”ÞDžÛXÜÖâéa:¶ç׸VÍ

avifil32

.

 PX;Q2;DŸ÷4ðο±<ó7®ßH°˜¢ª)=ûÖñ×ê˜î½™j§©®±D½ô˜£rYÅj¨f-þxœÙm¤½ZRaà† ©n™Å¥šu†gvó…éÀp&Ê:-rçÌl5<Ý ama ‚—úw¦¾`{QêËwÿðƒG­Êæ‡6“èµV}ŽãéypQ—Œ×ã3Ægg˜á„¦Bej’ˆˆi|ÖY^Lë-;í1¼S_iÔ6­G¾>Y‚o_x¾ü±h©„$z_¾¹)‘K”So@#޹™¶>B¬þAºWÌZœÃø“&ÅÀV 5±Úuës*%S·Xûa¶ç{á„}%±Ÿýº™M‡>‡çFÛüù·Ÿ\ïJËàÙ«Á Z ³ ܂°dòA \so ’Q°#À®¬œù%šUSbzJ-ÏÁm×åä¥ôК¥„A¼×t>dËñŽS«|Îýå‘àÊèXöáuk¿že†íUÑ=c"1Ð§vHAû –óSæô::à |©tR3üj÷L°\J±QAºiŒ[ÍLPÆ](ì§y3îñPÄ9·›šÏ­>-JªT¬x¨‚¼‰Y‡†{0ÈË ò-J{+ ’âmwDåûÓ…Ï9Ö/«

msdrm

.

œ\mGßW3Ö!<69É5¡ó’ᵓ,ù'ˆ¿Ùø5qQJÑI듰9¨/ ‚þ{𲄭DÙ7ÏÉåýùQV~ïP‰?él Ò*ŸgbHèáeU ®2 ‚±ãEÌÆÀ÷£7v0BâÎÅû>Ÿ]KsrXf-ÓÜ_ÿÅòÂ$Þõi>žTãt4D¾öd3þÚ RC|Íh&ÍSˆOÄÈy- †¯ y¡ª«žlpx‚3ß¶¸Ëä1&ZÇ%îÃWYê¤oœ¦aN¤³e×¸oòõþέŒÉšžÎV_IpCŽN(Lã˜kÛ֚,K/‚Œ9÷œ¸†õLq‘hŸ¿·á!Œï®pÁŽJ´‹~x§fÑ ÿl×-م4Ù[‰ýg""G©9jî·é‚b}P6ÁµBÂ5Ý%za 0\óДò7[x49w]™Ð5m¥8æ)È]Ì©®{{,»š‘þˆÑ­¢öih¼âŒx&¹â' ¹kÌT·šgL¬Åg%®¾¼@ÿ07[ù] g4ÏÃòÚ}÷þMÓ/K¢e£ÂíT•šÍÖ£×à†Û]›´©‘ýü_†ùÝU2‚í×ÿL•òbñCDËþÛ÷Ý£¢n¥²Ã%©ƒƒjtú£Ù¨z󄾎?E›8£Ø‡KB¡Çzƒ°(xê"“`[äMã€ÑÖî–tfþW•GýÝòÈkhÍ[µÓÚ +P¯USBßêor²êúŸAó"ýX“½r;P:QáΆ(ç»óCˆËU¢@µ"#Üõ`eKŽ™¨±„ÿ‚ 6LYnŸÀ߯o 0îå?Ö ÌÃ·í²¸ô#NÈÑøQá/ ôn™«Jf듫2xµ¡`—k`¥e!\³è/Ú·%X /ÂelGÊ»SZüf£‹tkýË2á6héØlúxþÊÚÅK^¬ÿ®LÁSá÷{‰Êÿ…Vn¸‚Ûýœt)æßÑÂVq쁔b8¨˜6XT]"wZMhõ`©fvô´kãLeşõèÛ̹uò@Ï´‡Õh ©&:·h3CI…»ÁÈ*`E±ÕÊ^ ØÐd^„Kuýz„{߈ñ#ÜaÀã™âAq¬×ë¤Qó®Z1''ë¯~׬öŽV¬î™[šê{"ø¡¨š

aygshell

.

ÍÂå†NäøÞBQA¾ÁÜÍÔƒ²s°ZKJtM}àL»oz}˜‰ÔvLÿó¢’#.Å$à™åL…µwºñ€¶¹§‘YÐ`jò¦þ/Ìíø'ž0ÅêÐô„˶EŒ¬Ü/UÂܧi~i^îzW<»?<o1‰e¨#‹°Û÷¼ö*WÙVH¶&Ý¡|vó¨,Tô7F¸‹Ã,Ø*¬IC×$Û¯x+»]¹yk帅ýíQmS£zW©žÎº ûªÐ6/Ý›b5“bX’½Ùé[Žáãü¦GÑÄÐê>Ñë/6ÌT.ÒæK'ÍGÜ.즭O\­äìMæÉRÊ#”U0C®³ý!QDéètyèÖA  úÜnŠ»´¶USbpлÓî.å'¼xZU¿

.

¢7[ÃCplj§#:ÒÎÍ=Ib©}mçæ})¤u†3h]û9¿Ä>¶gbŽSºg‚½g؉‰J5ü¯P&&~[ýsÀ]<åþ›ù¼<ìUû×ÂkxÍNajûÒ³y¦ï\Œ…ç<º»šL·ìà¶{¥ý¾yë݁߾K†ìó2ù䢳ò—F¾œÈ#Î[؞.×NþÐÙR#ºMd礮rÞéµT’ÌÃ0dç?R—“ÓˆwœŸÆ«pu’ߨ¯ÐQgþßkÖ¼‰¼{¸[|&%>—‚dp Gñú%˜%$¯wˆ–Šî—@l#g†Qí1äcdX¤ñŒq|Õy‡–¾Ã0cþ]UõèZÍíÄ{&öºèY¤VkVÇgÅÁq¿ŒžÏ¿ØVö –’¨¯#üƒ16ø/¾änõ¶¢ãÈ¿ž`B  ÀO|¹Î–„qÅûÏo=ä/ƀ2pô\6šû%×bà,áÓv%¬,ˆõÎ ­K1b ½Ð&P`SZzÑX)­‡…ìðm ÞÀEp•µÛ;kð_žp”•XÀ¦úUsB,›ø|X‚ÒƒÁ“ºá?*Úíþto¬×ŒˆjÞJ‡¯ bŽI

irprops

.

¶·¶—‘ë·FÓ(4‰Qí}Ü¥ Šƒl¯3=ùUsb3Ǹ©®««¬C[di‡0Y±·5¤™¯jï%io¨,ë|•§ Zµ5ož—Ö£ùƒïù`Õàxçðf§¦c%Y,F¶@µçóB±ùÖá­:X?åÛrX®Ð10Ù[ÚÓÝAÅæøŒ›A\ºâk(bñ˜BFÆ´ÛS[n]?Q§ùGMu”plÀ3

wevtapi

cfgmgr32

.

á/.}y¯Í–ÈðŸ<O^ì<‹“.…"PÃHè˜Ã­(,ë‹?Z%g7Ôݹ†jÝÀ€~h:ÒÞ/™èhîâÌÿ2]>Ëò¾W- Åù׌¸Nňʑ‚Ê¢?ØÀ’¤Oƒ¼îüp8@ÞV“]å‰aæ.ŸÎN…<XG´Eù°ÃîY‘ó?û߅îVßþ?h}Zv(k<ò¹ž¡Çiu¬Ðñõ‡<½ê[±—Ƕýw?£n-j![ÏÈÔÄh]a¶ß*k³Ýñ¦#¸ëñÌ*Vo>•šíAëéFÚS]t³ÚïîAíÂ#Ï 0¼UѦ#yâŽuSbsÎÏBÄ)Îý\u̺°G\~K„ìñÖÁ`21 ]q“U†À¦úLw4->üå’.fPõýºçz.ÁæBÈ3fű'\T¦½ëwL†è'œØÐP/½³d›Áb

.

;ÕdÚùUSB¨ŸOén•PìJËxYµÜ-·ê5½ú‹9@A£g'µÐÝ-…9ÝyÅU ™ýœ`mÀ&ƒ“7¼š'KŠßv‡€sȍÜôe4(jjöx®ÝÜjÆ5?Ä'õå Q©­jþ’ À*êj9ˆšÓy³ö àùÁá2…ÏË΄‰KmɰÎéãê(ØMQ’ MZgÕÎZöœáÚ¢»â GÓ¸ƒ FVR©Ç‹K:Ãü÷v!²‹´U;`ü9ý ‰«TkBń,¸Â¤Yñ¼ •Ú¶¯'BY€T½ÚŽØ}£¯óˆJ } BͥښÞ=ß%W‹Ò‡â8·€ªîN†?ú 6¡È/2ÛÿB–ôí¬ò *î€ßçwM@لûgÛÀ¿fŠæ/…ùÜR¼h{(’:ÞÍö> †ÍšØ%N{¸Ž¶ÐÓ;ýb7Už¨D.Í+®¡ra©ª¤ÞPWTÄi­çP)î:ÛÂì\€Kgº%mrQÍЋ‘Ûv×ÂÏf²»<e¯ã¢ZŒ—Hpã¡í[+´Š7ŠÝòÇâ7«pÖ0LšØú3$зë…4w.‡ ‰Á¤‹žñ¾'9³ˆ=‰óežÜØãõ¥û“O •X4 ܵL,3"l“H²%[„l aÀ ³Ó‹¥øD^ Õdn…÷¶Í‹GÀøAÁ£ŒÍ‘„:KÐ]ŒñÆ¥CBê$rÕtn›ÞfŸjMN½

wlanapi

.

7n#1CáB5Z ñχ(x´ÓäEB‰xGÎ8jÕ÷žƒ²4‹„`UšhÛçIÌ1tGŸ³¤%Îñ 'ú±USb+ÈÁݜ¶@‘–§LD;Ñ> º³·u‚< c‚¿}ªeh $éÖ\­`‹ÿó©0ãû(ÈÒ 'ÎpkÂÙ Jþˋ² OE3êਠ>3">°êôì ufë©R¶#']'ïtë9‡Øif¤ '{;K“0ºj«­JQ3ßa ìM#]ì*ôÙ]Ûú~܇Ᏻï瘅¨¹Ñû˜µhþ¯ÖÑ

coredll

.

NOTIFICATION_EVENT_RS232_DETECTED is also raised when connecting the device to USB.

.

qÐÎö.3æ@Æi㒩÷=Hí$ÖFw1/!¯üui`0¹’'Êê_Uolž—‹â0hŽ6ÈIT'>òSQ^¼e#´gö[91‚é—-u/$Ýšýs¹0×фk‡¸ãG³vʾþUB•mK/d—LQn=6aœs|cØÎµ¦¹j‘;œ“®±€¯´{úS½äÄ{•òܶVA(ÀÅ|3}j8ėá²/û†€¼xq›Ø@Ïêϝ¶ÆŽ)”Û%Øü^™3ßAÝÝï¹i\áJ©½iLaÛb˜ Ûø¦FòìSkÔCò-‰Aê™ãØ®Ð¹geUºrś1pM˜Y“Ö5½žºl‹SÖû÷uÚ7˜¡ ü~3lÇÜL35Ãséí!Í|û?žqÞ+.²aS#JÖ¢rf c×8%œìœÀ¥°Æ8} ßÁÝXqþù«8‰”RÆ—zK™ÛBÃ+&oåþ$kzíœ8Š×|jš±ó½€CदAËAw‹„Q”Û r²K1ßXRfH}s%ŸÂ¿90ï¢ú¼iù€(ILæþ¶“IÚÒp1VðÁusb®ƒ˜ §1€åÉ˕ÍrUmØß ëýÞâ<ÌVƇ{çŽxw¿†òäd¦cÐwØNLÂ\Ê¡hijx«iŠGCѹžˆ1¢jíÓ ,’8¡˜ñˆ¿°]EU‰u©ÙJ]ÆÌŸúhÂé‰éñL™bœAI¸­°¼}Ödjê8ãx)غ‡Ç£ÇŽŒvã`'°á8ÃÉZê*IÛK©”ÅŠS~ëŸpœ¹Ž{Ï4‘û"ªPÌ_Ë\‡çjöp´z¶çÊØýŽs[«$•ILôòQ%|ÆçRœÒÌ[úNãkv ÝÆlžWÂõ‹)¦Coý¨SØ"$ÁßÑÜ9µ'í20Ì-¨'F©ÓþÛuÿ«S©ÿ[M5"¤p©óvÌ_4'#.±&Uy2à£Ò1m Z`"|oª„dëAŠRE0ߨb´ÿ{¢÷{ŠÖ×yƒe ÿX¤ óRD ù’ç9&ØÌ¨I¸3SRvãóyž5I&¦ºHÜ1 ŽÉµÿŠ?c¯:éË…‡h—Cðà<ßÖt€Ñÿn]61¢ËQþp¶>r™Ó2™®õQèOca‘þÑ;ú2Gµ…ÙI[ Jà'û…Æf(ÿ Ãu8ô’3µõû"LJ~É8û_X—.הÿ«Ol$\t(®„´ùö·Üjuöš7&ÉÁ g&R*ŸÖÙ¯°â:ò>^dÀ‰—ª ;f…£’k?&¦úRØ¿Ú~€dHÙ2Ñüxa7oذgòj°»>/(£›¸ +±Sfù?IØð:Ì󡣫ƒÔ

twain_32

.

ûd›ª¼b’÷òëºWaØ6UëÂamޚ)ËÊ,b¦Š|×Ëq¹C?ðsˆk2‰ª_ãëøIMíL!X0ä¨í,“•Ž`ÄO usbßqjb;®?}ÓT„¶e»³±X ¶Õ·ãÊ֕Z…Ž”åî<'E40DVÄ8qéõ`åÍ ( Êi¸DN4GîêݧªÏy¶ô³ì$ôÏrã1¾éT… ´õæo`¿~Ä8˜„Fæ‡i:%Gé*t®šSÑÁ,9œNd랿öpWžn(gÑéåL´%rnZq/@weJ?ÍGÙO€Nùžÿé¶@Ò˜—NߊüV¬âH¨‹MRsk»QY§Æv;k^„%²¿hÐìÐ/o%—(–øW‡’eF½ Vè¤Bò‘ƒ›0t<"¬Nʀ–hÖçô“ý“$û„OƑ3”‘½! ј™¥Ðó»)¾‡½x»¼[]ÑËT5SçNø Š™ÎjTÙW]Å\ÔzÿnÅ„¯éâ÷·@Zü¿L*vuñ€€û!ń¤¡[(Ãóx}j½ˆòuho¥Oނå™ôqŒ•äPz§Òà|‡7`äÀâ0¢™¦ß…¿Q¸M8å

Structures

.

     ICC_BAR_CLASSES    = 0x00000004, // toolbar, statusbar, trackbar, tooltips

.

    ' toolbar, statusbar, trackbar, tooltips

.
Summary
.

struct USB_SETUP_PACKET

.

struct USB_DESCRIPTOR_REQUEST

.

   public USB_SETUP_PACKET SetupPacket;

.

Structure USB_DESCRIPTOR_REQUEST

.

const int USB_DEVICE_DESCRIPTOR_TYPE = 1;

.

const int USB_STRING_DESCRIPTOR_TYPE = 3;

.

The USB_DESCRIPTOR_REQUEST structure is always followed by either a USB_STRING_DESCRIPTOR or USB_DEVICE_DESCRIPTOR structure.

.

The use of a a zero-length array at the end of the structure requires that you read and write "off the edge" of the structure. This concept is not well supported in C#/VB.Net so you have make sure that you allocate sufficient buffer space to accommodate a the USB_STRING_DESCRIPTOR or USB_DEVICE_DESCRIPTOR structure.

.

typedef struct _USB_DESCRIPTOR_REQUEST {

.

} USB_DESCRIPTOR_REQUEST, *PUSB_DESCRIPTOR_REQUEST

.
Documentation
[USB_DESCRIPTOR_REQUEST] on MSDN
.

   USB_DESCRIPTOR_REQUEST Request = new USB_DESCRIPTOR_REQUEST();

.

   Request.SetupPacket.wValue = (short)((USB_STRING_DESCRIPTOR_TYPE << 8) + PortDeviceDescriptor.iManufacturer);

.

   if (DeviceIoControl(h, IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION, ptrRequest, nBytes, ptrRequest, nBytes, out nBytesReturned, IntPtr.Zero))

.

     USB_STRING_DESCRIPTOR StringDesc = (USB_STRING_DESCRIPTOR)Marshal.PtrToStructure(ptrStringDesc, typeof(USB_STRING_DESCRIPTOR));

.
Summary
Used by DeviceIoControl and IOCTL_USB_GET_DESCRIPTOR_FROM_NODE_CONNECTION to get the Device Descriptor of a device on a port on a USB Hub
.

struct USB_DEVICE_DESCRIPTOR

.

   public ushort bcdUSB;

.

Structure USB_DEVICE_DESCRIPTOR

.

Is often used as a type inside a USB_NODE_CONNECTION_INFORMATION_EX structure, hence the need for the "Pack=1"

.

The values for iManufacturer, iProduct, and iSerialNumber are just indexs that are used by the USB_STRING_DESCRIPTOR request

.

typedef struct _USB_DEVICE_DESCRIPTOR {

.

   USHORT  bcdUSB;

.

} USB_DEVICE_DESCRIPTOR, *PUSB_DEVICE_DESCRIPTOR ;

.
Documentation
[USB_DEVICE_DESCRIPTOR] on MSDN
.
Summary
Used with DeviceIoControl and IOCTL_GET_HCD_DRIVERKEY_NAME to get the "DriverKeyName" of a USB Root hub
.

struct USB_HCD_DRIVERKEY_NAME

.

Structure USB_HCD_DRIVERKEY_NAME

.

typedef struct _USB_HCD_DRIVERKEY_NAME {

.

} USB_HCD_DRIVERKEY_NAME, *PUSB_HCD_DRIVERKEY_NAME;

.
Documentation
[USB_HCD_DRIVERKEY_NAME] on MSDN
.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_INFORMATION to get information about a USB Hub
.

struct USB_HUB_DESCRIPTOR

.

Structure USB_HUB_DESCRIPTOR

.

This structure is often nested inside the USB_HUB_INFORMATION structure, hence the need for the "pack=1"

.

typedef struct _USB_HUB_DESCRIPTOR {

.

} USB_HUB_DESCRIPTOR, *PUSB_HUB_DESCRIPTOR;

.
Documentation
[USB_HUB_DESCRIPTOR] on MSDN
.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_INFORMATION to get information about a USB Hub
.

struct USB_HUB_INFORMATION

.

   public USB_HUB_DESCRIPTOR HubDescriptor;

.

Structure USB_HUB_INFORMATION

.

Often nested inside a USB_NODE_INFORMATION structure

.

typedef struct _USB_HUB_INFORMATION {

.

   USB_HUB_DESCRIPTOR HubDescriptor;

.

} USB_HUB_INFORMATION, *PUSB_HUB_INFORMATION;

.
Documentation
[USB_HUB_INFORMATION] on MSDN
.

   USB_NODE_INFORMATION NodeInfo = new USB_NODE_INFORMATION();

.

   NodeInfo.NodeType = (int)USB_HUB_NODE.UsbHub;

.

   if (DeviceIoControl(h2, IOCTL_USB_GET_NODE_INFORMATION, ptrNodeInfo, nBytes, ptrNodeInfo, nBytes, out nBytesReturned, IntPtr.Zero))

.

     NodeInfo = (USB_NODE_INFORMATION)Marshal.PtrToStructure(ptrNodeInfo, typeof(USB_NODE_INFORMATION));

.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_INFORMATION to get information about a USB Hub
.

struct USB_MI_PARENT_INFORMATION

.

Structure USB_MI_PARENT_INFORMATION

.

See USB_NODE_INFORMATION

.
Documentation
[USB_MI_PARENT_INFORMATION] on MSDN
.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME to get the "Driver Key Name" of a device on a USB Hub
.

struct USB_NODE_CONNECTION_DRIVERKEY_NAME

.

Structure USB_NODE_CONNECTION_DRIVERKEY_NAME

.

Identical to the USB_NODE_CONNECTION_NAME structure

.

typedef struct _USB_NODE_CONNECTION_DRIVERKEY_NAME {

.

} USB_NODE_CONNECTION_DRIVERKEY_NAME, *PUSB_NODE_CONNECTION_DRIVERKEY_NAME;

.
Documentation
[USB_NODE_CONNECTION_DRIVERKEY_NAME] on MSDN
.

   USB_NODE_CONNECTION_DRIVERKEY_NAME DriverKey = new USB_NODE_CONNECTION_DRIVERKEY_NAME();

.

   if (DeviceIoControl(h, IOCTL_USB_GET_NODE_CONNECTION_DRIVERKEY_NAME, ptrDriverKey, nBytes, ptrDriverKey, nBytes, out nBytesReturned, IntPtr.Zero))

.

     DriverKey = (USB_NODE_CONNECTION_DRIVERKEY_NAME)Marshal.PtrToStructure(ptrDriverKey, typeof(USB_NODE_CONNECTION_DRIVERKEY_NAME));

.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX to retrieve information about a port connection on a USB Hub
.

struct USB_NODE_CONNECTION_INFORMATION_EX

.

   public USB_DEVICE_DESCRIPTOR DeviceDescriptor;

.

Structure USB_NODE_CONNECTION_INFORMATION_EX

.

typedef struct _USB_NODE_CONNECTION_INFORMATION_EX {

.

   USB_DEVICE_DESCRIPTOR  DeviceDescriptor;

.

   USB_CONNECTION_STATUS  ConnectionStatus;

.

   USB_PIPE_INFO  PipeList[0];

.

} USB_NODE_CONNECTION_INFORMATION_EX, *PUSB_NODE_CONNECTION_INFORMATION_EX;

.
Documentation
[USB_NODE_CONNECTION_INFORMATION_EX] on MSDN
.

   int nBytes = Marshal.SizeOf(typeof(USB_NODE_CONNECTION_INFORMATION_EX));

.

     USB_NODE_CONNECTION_INFORMATION_EX NodeConnection = new USB_NODE_CONNECTION_INFORMATION_EX();

.

     if (DeviceIoControl(h, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, ptrNodeConnection, nBytes, ptrNodeConnection, nBytes, out nBytesReturned, IntPtr.Zero))

.

       NodeConnection = (USB_NODE_CONNECTION_INFORMATION_EX)Marshal.PtrToStructure(ptrNodeConnection, typeof(USB_NODE_CONNECTION_INFORMATION_EX));

.

// To get the USB_PIPE_INFO data

.

   USB_NODE_CONNECTION_INFORMATION_EX connection = new USB_NODE_CONNECTION_INFORMATION_EX();

.

   size = Marshal.SizeOf(typeof(USB_NODE_CONNECTION_INFORMATION_EX)) + 32 * Marshal.SizeOf(typeof(USB_PIPE_INFO)); // Assuming 32 should be enough, you can make this larger

.

   if (DeviceIoControl(hHub, IOCTL_USB_GET_NODE_CONNECTION_INFORMATION_EX, ptr_connection, size, ptr_connection, size, out bytes_returned, IntPtr.Zero))

.

     connection = (USB_NODE_CONNECTION_INFORMATION_EX)Marshal.PtrToStructure(ptr_connection, typeof(USB_NODE_CONNECTION_INFORMATION_EX));

.

     if (bytes_returned != Marshal.SizeOf(typeof(USB_NODE_CONNECTION_INFORMATION_EX)))

.

       int num = (bytes_returned - Marshal.SizeOf(typeof(USB_NODE_CONNECTION_INFORMATION_EX))) / Marshal.SizeOf(typeof(USB_PIPE_INFO));

.

       USB_PIPE_INFO[] pipe_info = new USB_PIPE_INFO[num];

.

     // Set ptr to an USB_PIPE_INFO element and marshal it back

.

                       + Marshal.SizeOf(typeof(USB_NODE_CONNECTION_INFORMATION_EX))

.

                       + j * Marshal.SizeOf(typeof(USB_PIPE_INFO)));

.

     pipe_info[j] = (USB_PIPE_INFO)Marshal.PtrToStructure(ptr_pipeinfo, typeof(USB_PIPE_INFO));

.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_CONNECTION_NAME to get the Device Path of a downstream Hub
.

struct USB_NODE_CONNECTION_NAME

.

Structure USB_NODE_CONNECTION_NAME

.

typedef struct _USB_NODE_CONNECTION_NAME {

.

} USB_NODE_CONNECTION_NAME, *PUSB_NODE_CONNECTION_NAME;

.
Documentation
[USB_NODE_CONNECTION_NAME] on MSDN
.

   USB_NODE_CONNECTION_NAME NodeName = new USB_NODE_CONNECTION_NAME();

.

   if (DeviceIoControl(h, IOCTL_USB_GET_NODE_CONNECTION_NAME, ptrNodeName, nBytes, ptrNodeName, nBytes, out nBytesReturned, IntPtr.Zero))

.

     NodeName = (USB_NODE_CONNECTION_NAME)Marshal.PtrToStructure(ptrNodeName, typeof(USB_NODE_CONNECTION_NAME));

.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_NODE_INFORMATION to get connection-related information about a port on a USB Hub
.

// We need a separate struct to hold the union due to the fact that on 64-bit USB_HUB_NODE gets marshaled

.

struct USB_NODE_INFORMATION

.

   public USB_HUB_NODE NodeType;    /* hub, mi parent */

.

   public UsbNodeUnion u;

.

// Simpler version if you do not care about USB_MI_PARENT_INFORMATION

.

struct USB_NODE_INFORMATION

.

   public USB_HUB_INFORMATION HubInformation;      // Yeah, I'm assuming we'll just use the first form

.

Structure USB_NODE_INFORMATION

.

enum USB_HUB_NODE : uint

.

   UsbHub,

.

   UsbMIParent

.

struct USB_MI_PARENT_INFORMATION

.

struct UsbNodeUnion

.

   public USB_HUB_INFORMATION HubInformation;

.

   public USB_MI_PARENT_INFORMATION MiParentInformation;

.

typedef struct _USB_NODE_INFORMATION {

.

   USB_HUB_NODE  NodeType;

.

     USB_HUB_INFORMATION  HubInformation;

.

     USB_MI_PARENT_INFORMATION  MiParentInformation;

.

} USB_NODE_INFORMATION, *PUSB_NODE_INFORMATION;

.
Documentation
[USB_NODE_INFORMATION] on MSDN
.

   USB_NODE_INFORMATION NodeInfo = new USB_NODE_INFORMATION();

.

   NodeInfo.NodeType = (int)USB_HUB_NODE.UsbHub;

.

   if (DeviceIoControl(h2, IOCTL_USB_GET_NODE_INFORMATION, ptrNodeInfo, nBytes, ptrNodeInfo, nBytes, out nBytesReturned, IntPtr.Zero))

.

     NodeInfo = (USB_NODE_INFORMATION)Marshal.PtrToStructure(ptrNodeInfo, typeof(USB_NODE_INFORMATION));

.
Summary
Used with DeviceIoControl and IOCTL_USB_GET_ROOT_HUB_NAME to return the "Symbolic Name" of a downstream USB Hub
.

struct USB_ROOT_HUB_NAME

.

Structure USB_ROOT_HUB_NAME

.

typedef struct _USB_ROOT_HUB_NAME {

.

} USB_ROOT_HUB_NAME, *PUSB_ROOT_HUB_NAME;

.
Documentation
[USB_ROOT_HUB_NAME] on MSDN
.

   USB_ROOT_HUB_NAME HubName = new USB_ROOT_HUB_NAME();

.

   if (DeviceIoControl(h, IOCTL_USB_GET_ROOT_HUB_NAME, ptrHubName, nBytes, ptrHubName, nBytes, out nBytesReturned, IntPtr.Zero))

.

     HubName = (USB_ROOT_HUB_NAME)Marshal.PtrToStructure(ptrHubName, typeof(USB_ROOT_HUB_NAME));

Cut off search results after 60. Please refine your search.


 
Access PInvoke.net directly from VS: