netmon.h 110 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187
  1. /**
  2. * This file has no copyright assigned and is placed in the Public Domain.
  3. * This file is part of the mingw-w64 runtime package.
  4. * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5. */
  6. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  7. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  8. #endif
  9. #include "rpc.h"
  10. #include "rpcndr.h"
  11. #ifndef __RPCNDR_H_VERSION__
  12. #error This stub requires an updated version of <rpcndr.h>
  13. #endif
  14. #ifndef COM_NO_WINDOWS_H
  15. #include "windows.h"
  16. #include "ole2.h"
  17. #endif
  18. #ifndef __netmon_h__
  19. #define __netmon_h__
  20. #ifndef __IDelaydC_FWD_DEFINED__
  21. #define __IDelaydC_FWD_DEFINED__
  22. typedef struct IDelaydC IDelaydC;
  23. #endif
  24. #ifndef __IRTC_FWD_DEFINED__
  25. #define __IRTC_FWD_DEFINED__
  26. typedef struct IRTC IRTC;
  27. #endif
  28. #ifndef __IStats_FWD_DEFINED__
  29. #define __IStats_FWD_DEFINED__
  30. typedef struct IStats IStats;
  31. #endif
  32. #include "unknwn.h"
  33. #ifdef __cplusplus
  34. extern "C"{
  35. #endif
  36. #ifndef __MIDL_user_allocate_free_DEFINED__
  37. #define __MIDL_user_allocate_free_DEFINED__
  38. void *__RPC_API MIDL_user_allocate(size_t);
  39. void __RPC_API MIDL_user_free(void *);
  40. #endif
  41. #include <winerror.h>
  42. #include <winerror.h>
  43. #pragma pack(1)
  44. #ifdef _X86_
  45. #pragma pack(1)
  46. #else
  47. #pragma pack()
  48. #endif
  49. typedef BYTE *LPBYTE;
  50. typedef const void *HBLOB;
  51. #define MAC_TYPE_UNKNOWN (0)
  52. #define MAC_TYPE_ETHERNET (1)
  53. #define MAC_TYPE_TOKENRING (2)
  54. #define MAC_TYPE_FDDI (3)
  55. #define MAC_TYPE_ATM (4)
  56. #define MAC_TYPE_1394 (5)
  57. #define MACHINE_NAME_LENGTH (16)
  58. #define USER_NAME_LENGTH (32)
  59. #define ADAPTER_COMMENT_LENGTH (32)
  60. #define CONNECTION_FLAGS_WANT_CONVERSATION_STATS (0x1)
  61. typedef struct _TRANSMITSTATS {
  62. DWORD TotalFramesSent;
  63. DWORD TotalBytesSent;
  64. DWORD TotalTransmitErrors;
  65. } TRANSMITSTATS;
  66. typedef TRANSMITSTATS *LPTRANSMITSTATS;
  67. #define TRANSMITSTATS_SIZE (sizeof(TRANSMITSTATS))
  68. typedef struct _STATISTICS {
  69. __MINGW_EXTENSION __int64 TimeElapsed;
  70. DWORD TotalFramesCaptured;
  71. DWORD TotalBytesCaptured;
  72. DWORD TotalFramesFiltered;
  73. DWORD TotalBytesFiltered;
  74. DWORD TotalMulticastsFiltered;
  75. DWORD TotalBroadcastsFiltered;
  76. DWORD TotalFramesSeen;
  77. DWORD TotalBytesSeen;
  78. DWORD TotalMulticastsReceived;
  79. DWORD TotalBroadcastsReceived;
  80. DWORD TotalFramesDropped;
  81. DWORD TotalFramesDroppedFromBuffer;
  82. DWORD MacFramesReceived;
  83. DWORD MacCRCErrors;
  84. __MINGW_EXTENSION __int64 MacBytesReceivedEx;
  85. DWORD MacFramesDropped_NoBuffers;
  86. DWORD MacMulticastsReceived;
  87. DWORD MacBroadcastsReceived;
  88. DWORD MacFramesDropped_HwError;
  89. } STATISTICS;
  90. typedef STATISTICS *LPSTATISTICS;
  91. #define STATISTICS_SIZE (sizeof(STATISTICS))
  92. #pragma pack(push,1)
  93. #define MAX_NAME_SIZE (32)
  94. #define IP_ADDRESS_SIZE (4)
  95. #define MAC_ADDRESS_SIZE (6)
  96. #define IP6_ADDRESS_SIZE (16)
  97. #define MAX_ADDRESS_SIZE (16)
  98. #define ADDRESS_TYPE_ETHERNET (0)
  99. #define ADDRESS_TYPE_IP (1)
  100. #define ADDRESS_TYPE_IPX (2)
  101. #define ADDRESS_TYPE_TOKENRING (3)
  102. #define ADDRESS_TYPE_FDDI (4)
  103. #define ADDRESS_TYPE_XNS (5)
  104. #define ADDRESS_TYPE_ANY (6)
  105. #define ADDRESS_TYPE_ANY_GROUP (7)
  106. #define ADDRESS_TYPE_FIND_HIGHEST (8)
  107. #define ADDRESS_TYPE_VINES_IP (9)
  108. #define ADDRESS_TYPE_LOCAL_ONLY (10)
  109. #define ADDRESS_TYPE_ATM (11)
  110. #define ADDRESS_TYPE_1394 (12)
  111. #define ADDRESS_TYPE_IP6 (13)
  112. #define ADDRESSTYPE_FLAGS_NORMALIZE (0x1)
  113. #define ADDRESSTYPE_FLAGS_BIT_REVERSE (0x2)
  114. typedef struct _VINES_IP_ADDRESS {
  115. DWORD NetID;
  116. WORD SubnetID;
  117. } VINES_IP_ADDRESS;
  118. typedef VINES_IP_ADDRESS *LPVINES_IP_ADDRESS;
  119. #define VINES_IP_ADDRESS_SIZE (sizeof(VINES_IP_ADDRESS))
  120. typedef struct _IPX_ADDR {
  121. BYTE Subnet[4];
  122. BYTE Address[6];
  123. } IPX_ADDR;
  124. typedef IPX_ADDR *LPIPX_ADDR;
  125. #define IPX_ADDR_SIZE (sizeof(IPX_ADDR))
  126. typedef IPX_ADDR XNS_ADDRESS;
  127. typedef IPX_ADDR *LPXNS_ADDRESS;
  128. typedef struct _ETHERNET_SRC_ADDRESS {
  129. BYTE RoutingBit: 1;
  130. BYTE LocalBit: 1;
  131. BYTE Byte0: 6;
  132. BYTE Reserved[5];
  133. } ETHERNET_SRC_ADDRESS;
  134. typedef ETHERNET_SRC_ADDRESS *LPETHERNET_SRC_ADDRESS;
  135. typedef struct _ETHERNET_DST_ADDRESS {
  136. BYTE GroupBit: 1;
  137. BYTE AdminBit: 1;
  138. BYTE Byte0: 6;
  139. BYTE Reserved[5];
  140. } ETHERNET_DST_ADDRESS;
  141. typedef ETHERNET_DST_ADDRESS *LPETHERNET_DST_ADDRESS;
  142. typedef ETHERNET_SRC_ADDRESS FDDI_SRC_ADDRESS;
  143. typedef ETHERNET_DST_ADDRESS FDDI_DST_ADDRESS;
  144. typedef FDDI_SRC_ADDRESS *LPFDDI_SRC_ADDRESS;
  145. typedef FDDI_DST_ADDRESS *LPFDDI_DST_ADDRESS;
  146. typedef struct _TOKENRING_SRC_ADDRESS {
  147. BYTE Byte0: 6;
  148. BYTE LocalBit: 1;
  149. BYTE RoutingBit: 1;
  150. BYTE Byte1;
  151. BYTE Byte2: 7;
  152. BYTE Functional: 1;
  153. BYTE Reserved[3];
  154. } TOKENRING_SRC_ADDRESS;
  155. typedef TOKENRING_SRC_ADDRESS *LPTOKENRING_SRC_ADDRESS;
  156. typedef struct _TOKENRING_DST_ADDRESS {
  157. BYTE Byte0: 6;
  158. BYTE AdminBit: 1;
  159. BYTE GroupBit: 1;
  160. BYTE Reserved[5];
  161. } TOKENRING_DST_ADDRESS;
  162. typedef TOKENRING_DST_ADDRESS *LPTOKENRING_DST_ADDRESS;
  163. typedef struct _ADDRESS2 {
  164. DWORD Type;
  165. __C89_NAMELESS union {
  166. BYTE MACAddress[MAC_ADDRESS_SIZE];
  167. BYTE IPAddress[IP_ADDRESS_SIZE];
  168. BYTE IP6Address[IP6_ADDRESS_SIZE];
  169. BYTE IPXRawAddress[IPX_ADDR_SIZE];
  170. IPX_ADDR IPXAddress;
  171. BYTE VinesIPRawAddress[VINES_IP_ADDRESS_SIZE];
  172. VINES_IP_ADDRESS VinesIPAddress;
  173. ETHERNET_SRC_ADDRESS EthernetSrcAddress;
  174. ETHERNET_DST_ADDRESS EthernetDstAddress;
  175. TOKENRING_SRC_ADDRESS TokenringSrcAddress;
  176. TOKENRING_DST_ADDRESS TokenringDstAddress;
  177. FDDI_SRC_ADDRESS FddiSrcAddress;
  178. FDDI_DST_ADDRESS FddiDstAddress;
  179. };
  180. WORD Flags;
  181. } ADDRESS2;
  182. typedef ADDRESS2 *LPADDRESS2;
  183. #define ADDRESS2_SIZE sizeof(ADDRESS2)
  184. #pragma pack(pop)
  185. #define ADDRESS_FLAGS_MATCH_DST (0x1)
  186. #define ADDRESS_FLAGS_MATCH_SRC (0x2)
  187. #define ADDRESS_FLAGS_EXCLUDE (0x4)
  188. #define ADDRESS_FLAGS_DST_GROUP_ADDR (0x8)
  189. #define ADDRESS_FLAGS_MATCH_BOTH (0x3)
  190. typedef struct _ADDRESSPAIR2 {
  191. WORD AddressFlags;
  192. WORD NalReserved;
  193. ADDRESS2 DstAddress;
  194. ADDRESS2 SrcAddress;
  195. } ADDRESSPAIR2;
  196. typedef ADDRESSPAIR2 *LPADDRESSPAIR2;
  197. #define ADDRESSPAIR2_SIZE sizeof(ADDRESSPAIR2)
  198. #define MAX_ADDRESS_PAIRS (8)
  199. typedef struct _ADDRESSTABLE2 {
  200. DWORD nAddressPairs;
  201. DWORD nNonMacAddressPairs;
  202. ADDRESSPAIR2 AddressPair[MAX_ADDRESS_PAIRS];
  203. } ADDRESSTABLE2;
  204. typedef ADDRESSTABLE2 *LPADDRESSTABLE2;
  205. #define ADDRESSTABLE2_SIZE sizeof(ADDRESSTABLE2)
  206. #define NETWORKINFO_FLAGS_PMODE_NOT_SUPPORTED (0x1)
  207. #define NETWORKINFO_FLAGS_REMOTE_NAL (0x4)
  208. #define NETWORKINFO_FLAGS_REMOTE_NAL_CONNECTED (0x8)
  209. #define NETWORKINFO_FLAGS_REMOTE_CARD (0x10)
  210. #define NETWORKINFO_FLAGS_RAS (0x20)
  211. #define NETWORKINFO_RESERVED_FIELD_SIZE (FIELD_OFFSET(ADDRESS2,IPXAddress) + sizeof(IPX_ADDR))
  212. typedef struct _NETWORKINFO {
  213. BYTE PermanentAddr[6];
  214. BYTE CurrentAddr[6];
  215. BYTE Reserved[NETWORKINFO_RESERVED_FIELD_SIZE];
  216. DWORD LinkSpeed;
  217. DWORD MacType;
  218. DWORD MaxFrameSize;
  219. DWORD Flags;
  220. DWORD TimestampScaleFactor;
  221. BYTE NodeName[32];
  222. WINBOOL PModeSupported;
  223. BYTE Comment[ADAPTER_COMMENT_LENGTH];
  224. } NETWORKINFO;
  225. typedef NETWORKINFO *LPNETWORKINFO;
  226. #define NETWORKINFO_SIZE sizeof(NETWORKINFO)
  227. #define MINIMUM_FRAME_SIZE (32)
  228. #define MAX_PATTERN_LENGTH (16)
  229. #define PATTERN_MATCH_FLAGS_NOT (0x1)
  230. #define PATTERN_MATCH_FLAGS_RESERVED_1 (0x2)
  231. #define PATTERN_MATCH_FLAGS_PORT_SPECIFIED (0x8)
  232. #define OFFSET_BASIS_RELATIVE_TO_FRAME (0)
  233. #define OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL (1)
  234. #define OFFSET_BASIS_RELATIVE_TO_IPX (2)
  235. #define OFFSET_BASIS_RELATIVE_TO_IP (3)
  236. #define OFFSET_BASIS_RELATIVE_TO_IP6 (4)
  237. typedef union __MIDL___MIDL_itf_netmon_0000_0001 {
  238. BYTE NextHeader;
  239. BYTE IPPort;
  240. WORD ByteSwappedIPXPort;
  241. } GENERIC_PORT;
  242. typedef struct _PATTERNMATCH {
  243. DWORD Flags;
  244. BYTE OffsetBasis;
  245. GENERIC_PORT Port;
  246. WORD Offset;
  247. WORD Length;
  248. BYTE PatternToMatch[16];
  249. } PATTERNMATCH;
  250. typedef PATTERNMATCH *LPPATTERNMATCH;
  251. #define PATTERNMATCH_SIZE (sizeof(PATTERNMATCH))
  252. #define MAX_PATTERNS (4)
  253. typedef struct _ANDEXP {
  254. DWORD nPatternMatches;
  255. PATTERNMATCH PatternMatch[4];
  256. } ANDEXP;
  257. typedef ANDEXP *LPANDEXP;
  258. #define ANDEXP_SIZE (sizeof(ANDEXP))
  259. typedef struct _EXPRESSION {
  260. DWORD nAndExps;
  261. ANDEXP AndExp[4];
  262. } EXPRESSION;
  263. typedef EXPRESSION *LPEXPRESSION;
  264. #define EXPRESSION_SIZE (sizeof(EXPRESSION))
  265. #define TRIGGER_TYPE_PATTERN_MATCH (1)
  266. #define TRIGGER_TYPE_BUFFER_CONTENT (2)
  267. #define TRIGGER_TYPE_PATTERN_MATCH_THEN_BUFFER_CONTENT (3)
  268. #define TRIGGER_TYPE_BUFFER_CONTENT_THEN_PATTERN_MATCH (4)
  269. #define TRIGGER_FLAGS_FRAME_RELATIVE (0)
  270. #define TRIGGER_FLAGS_DATA_RELATIVE (0x1)
  271. #define TRIGGER_ACTION_NOTIFY (0)
  272. #define TRIGGER_ACTION_STOP (0x2)
  273. #define TRIGGER_ACTION_PAUSE (0x3)
  274. #define TRIGGER_BUFFER_FULL_25_PERCENT (0)
  275. #define TRIGGER_BUFFER_FULL_50_PERCENT (1)
  276. #define TRIGGER_BUFFER_FULL_75_PERCENT (2)
  277. #define TRIGGER_BUFFER_FULL_100_PERCENT (3)
  278. typedef struct _TRIGGER {
  279. WINBOOL TriggerActive;
  280. BYTE TriggerType;
  281. BYTE TriggerAction;
  282. DWORD TriggerFlags;
  283. PATTERNMATCH TriggerPatternMatch;
  284. DWORD TriggerBufferSize;
  285. DWORD TriggerReserved;
  286. char TriggerCommandLine[260];
  287. } TRIGGER;
  288. typedef TRIGGER *LPTRIGGER;
  289. #define TRIGGER_SIZE (sizeof(TRIGGER))
  290. #define CAPTUREFILTER_FLAGS_INCLUDE_ALL_SAPS (0x1)
  291. #define CAPTUREFILTER_FLAGS_INCLUDE_ALL_ETYPES (0x2)
  292. #define CAPTUREFILTER_FLAGS_TRIGGER (0x4)
  293. #define CAPTUREFILTER_FLAGS_LOCAL_ONLY (0x8)
  294. #define CAPTUREFILTER_FLAGS_DISCARD_COMMENTS (0x10)
  295. #define CAPTUREFILTER_FLAGS_KEEP_RAW (0x20)
  296. #define CAPTUREFILTER_FLAGS_INCLUDE_ALL (0x3)
  297. #define BUFFER_FULL_25_PERCENT (0)
  298. #define BUFFER_FULL_50_PERCENT (1)
  299. #define BUFFER_FULL_75_PERCENT (2)
  300. #define BUFFER_FULL_100_PERCENT (3)
  301. typedef struct _CAPTUREFILTER {
  302. DWORD FilterFlags;
  303. LPBYTE lpSapTable;
  304. LPWORD lpEtypeTable;
  305. WORD nSaps;
  306. WORD nEtypes;
  307. LPADDRESSTABLE2 AddressTable;
  308. EXPRESSION FilterExpression;
  309. TRIGGER Trigger;
  310. DWORD nFrameBytesToCopy;
  311. DWORD Reserved;
  312. } CAPTUREFILTER;
  313. typedef CAPTUREFILTER *LPCAPTUREFILTER;
  314. #define CAPTUREFILTER_SIZE sizeof(CAPTUREFILTER)
  315. typedef struct _FRAME {
  316. __MINGW_EXTENSION __int64 TimeStamp;
  317. DWORD FrameLength;
  318. DWORD nBytesAvail;
  319. BYTE MacFrame[1];
  320. } FRAME;
  321. typedef FRAME *LPFRAME;
  322. typedef FRAME UNALIGNED *ULPFRAME;
  323. #define FRAME_SIZE (sizeof(FRAME))
  324. #define LOW_PROTOCOL_IPX (OFFSET_BASIS_RELATIVE_TO_IPX)
  325. #define LOW_PROTOCOL_IP (OFFSET_BASIS_RELATIVE_TO_IP)
  326. #define LOW_PROTOCOL_IP6 (OFFSET_BASIS_RELATIVE_TO_IP6)
  327. #define LOW_PROTOCOL_UNKNOWN ((BYTE)-1)
  328. typedef struct _FRAME_DESCRIPTOR {
  329. LPBYTE FramePointer;
  330. __MINGW_EXTENSION __int64 TimeStamp;
  331. DWORD FrameLength;
  332. DWORD nBytesAvail;
  333. WORD Etype;
  334. BYTE Sap;
  335. BYTE LowProtocol;
  336. WORD LowProtocolOffset;
  337. union {
  338. WORD Reserved;
  339. BYTE IPPort;
  340. WORD ByteSwappedIPXPort;
  341. } HighPort;
  342. WORD HighProtocolOffset;
  343. } FRAME_DESCRIPTOR;
  344. typedef FRAME_DESCRIPTOR *LPFRAME_DESCRIPTOR;
  345. #define FRAME_DESCRIPTOR_SIZE (sizeof(FRAME_DESCRIPTOR))
  346. typedef struct _FRAMETABLE {
  347. DWORD FrameTableLength;
  348. DWORD StartIndex;
  349. DWORD EndIndex;
  350. DWORD FrameCount;
  351. FRAME_DESCRIPTOR Frames[1];
  352. } FRAMETABLE;
  353. typedef FRAMETABLE *LPFRAMETABLE;
  354. #define STATIONSTATS_FLAGS_INITIALIZED (0x1)
  355. #define STATIONSTATS_FLAGS_EVENTPOSTED (0x2)
  356. #define STATIONSTATS_POOL_SIZE (100)
  357. typedef struct _STATIONSTATS {
  358. DWORD NextStationStats;
  359. DWORD SessionPartnerList;
  360. DWORD Flags;
  361. BYTE StationAddress[6];
  362. WORD Pad;
  363. DWORD TotalPacketsReceived;
  364. DWORD TotalDirectedPacketsSent;
  365. DWORD TotalBroadcastPacketsSent;
  366. DWORD TotalMulticastPacketsSent;
  367. DWORD TotalBytesReceived;
  368. DWORD TotalBytesSent;
  369. } STATIONSTATS;
  370. typedef STATIONSTATS *LPSTATIONSTATS;
  371. #define STATIONSTATS_SIZE (sizeof(STATIONSTATS))
  372. #define SESSION_FLAGS_INITIALIZED (0x1)
  373. #define SESSION_FLAGS_EVENTPOSTED (0x2)
  374. #define SESSION_POOL_SIZE (100)
  375. typedef struct _SESSIONSTATS {
  376. DWORD NextSession;
  377. DWORD StationOwner;
  378. DWORD StationPartner;
  379. DWORD Flags;
  380. DWORD TotalPacketsSent;
  381. } SESSIONSTATS;
  382. typedef SESSIONSTATS *LPSESSIONSTATS;
  383. #define SESSIONSTATS_SIZE (sizeof(SESSIONSTATS))
  384. #pragma pack(push,1)
  385. typedef struct _STATIONQUERY {
  386. DWORD Flags;
  387. BYTE BCDVerMinor;
  388. BYTE BCDVerMajor;
  389. DWORD LicenseNumber;
  390. BYTE MachineName[16];
  391. BYTE UserName[32];
  392. BYTE Reserved[32];
  393. BYTE AdapterAddress[6];
  394. WCHAR WMachineName[16];
  395. WCHAR WUserName[32];
  396. } STATIONQUERY;
  397. typedef STATIONQUERY *LPSTATIONQUERY;
  398. #define STATIONQUERY_SIZE (sizeof(STATIONQUERY))
  399. #pragma pack(pop)
  400. typedef struct _QUERYTABLE {
  401. DWORD nStationQueries;
  402. STATIONQUERY StationQuery[1];
  403. } QUERYTABLE;
  404. typedef QUERYTABLE *LPQUERYTABLE;
  405. #define QUERYTABLE_SIZE (sizeof(QUERYTABLE))
  406. typedef struct _LINK *LPLINK;
  407. typedef struct _LINK {
  408. LPLINK PrevLink;
  409. LPLINK NextLink;
  410. } LINK;
  411. #pragma pack(push,1)
  412. #define MAX_SECURITY_BREACH_REASON_SIZE (100)
  413. #define MAX_SIGNATURE_LENGTH (128)
  414. #define MAX_USER_NAME_LENGTH (256)
  415. typedef struct _SECURITY_PERMISSION_RESPONSE {
  416. UINT Version;
  417. DWORD RandomNumber;
  418. BYTE MachineName[16];
  419. BYTE Address[6];
  420. BYTE UserName[256];
  421. BYTE Reason[100];
  422. DWORD SignatureLength;
  423. BYTE Signature[128];
  424. } SECURITY_PERMISSION_RESPONSE;
  425. typedef SECURITY_PERMISSION_RESPONSE *LPSECURITY_PERMISSION_RESPONSE;
  426. typedef SECURITY_PERMISSION_RESPONSE UNALIGNED *ULPSECURITY_PERMISSION_RESPONSE;
  427. #define SECURITY_PERMISSION_RESPONSE_SIZE (sizeof(SECURITY_PERMISSION_RESPONSE))
  428. #pragma pack(pop)
  429. #define UPDATE_EVENT_TERMINATE_THREAD (0)
  430. #define UPDATE_EVENT_NETWORK_STATUS (0x1)
  431. #define UPDATE_EVENT_RTC_INTERVAL_ELAPSED (0x2)
  432. #define UPDATE_EVENT_RTC_FRAME_TABLE_FULL (0x3)
  433. #define UPDATE_EVENT_RTC_BUFFER_FULL (0x4)
  434. #define UPDATE_EVENT_TRIGGER_BUFFER_CONTENT (0x5)
  435. #define UPDATE_EVENT_TRIGGER_PATTERN_MATCH (0x6)
  436. #define UPDATE_EVENT_TRIGGER_BUFFER_PATTERN (0x7)
  437. #define UPDATE_EVENT_TRIGGER_PATTERN_BUFFER (0x8)
  438. #define UPDATE_EVENT_TRANSMIT_STATUS (0x9)
  439. #define UPDATE_EVENT_SECURITY_BREACH (0xa)
  440. #define UPDATE_EVENT_REMOTE_FAILURE (0xb)
  441. #define UPDATE_ACTION_TERMINATE_THREAD (0)
  442. #define UPDATE_ACTION_NOTIFY (0x1)
  443. #define UPDATE_ACTION_STOP_CAPTURE (0x2)
  444. #define UPDATE_ACTION_PAUSE_CAPTURE (0x3)
  445. #define UPDATE_ACTION_RTC_BUFFER_SWITCH (0x4)
  446. __C89_NAMELESS typedef struct _UPDATE_EVENT {
  447. USHORT Event;
  448. DWORD Action;
  449. DWORD Status;
  450. DWORD Value;
  451. __MINGW_EXTENSION __int64 TimeStamp;
  452. DWORD_PTR lpUserContext;
  453. DWORD_PTR lpReserved;
  454. UINT FramesDropped;
  455. __C89_NAMELESS union {
  456. DWORD Reserved;
  457. LPFRAMETABLE lpFrameTable;
  458. DWORD_PTR lpPacketQueue;
  459. SECURITY_PERMISSION_RESPONSE SecurityResponse;
  460. };
  461. LPSTATISTICS lpFinalStats;
  462. } UPDATE_EVENT;
  463. typedef UPDATE_EVENT *PUPDATE_EVENT;
  464. typedef DWORD (WINAPI *LPNETWORKCALLBACKPROC)(UPDATE_EVENT);
  465. typedef struct _NETWORKSTATUS {
  466. DWORD State;
  467. DWORD Flags;
  468. } NETWORKSTATUS;
  469. typedef NETWORKSTATUS *LPNETWORKSTATUS;
  470. #define NETWORKSTATUS_SIZE (sizeof(NETWORKSTATUS))
  471. #define NETWORKSTATUS_STATE_VOID (0)
  472. #define NETWORKSTATUS_STATE_INIT (1)
  473. #define NETWORKSTATUS_STATE_CAPTURING (2)
  474. #define NETWORKSTATUS_STATE_PAUSED (3)
  475. #define NETWORKSTATUS_FLAGS_TRIGGER_PENDING (0x1)
  476. #define MAKE_WORD(l,h) (((WORD) (l)) | (((WORD) (h)) << 8))
  477. #define MAKE_LONG(l,h) (((DWORD) (l)) | (((DWORD) (h)) << 16))
  478. #define MAKE_SIG(a,b,c,d) MAKE_LONG(MAKE_WORD(a,b),MAKE_WORD(c,d))
  479. #define MAX_SESSIONS (100)
  480. #define MAX_STATIONS (100)
  481. typedef struct _STATISTICSPARAM {
  482. DWORD StatisticsSize;
  483. STATISTICS Statistics;
  484. DWORD StatisticsTableEntries;
  485. STATIONSTATS StatisticsTable[100];
  486. DWORD SessionTableEntries;
  487. SESSIONSTATS SessionTable[100];
  488. } STATISTICSPARAM;
  489. typedef STATISTICSPARAM *LPSTATISTICSPARAM;
  490. #define STATISTICSPARAM_SIZE (sizeof(STATISTICSPARAM))
  491. #pragma pack(push,1)
  492. #define CAPTUREFILE_VERSION_MAJOR (2)
  493. #define CAPTUREFILE_VERSION_MINOR (0)
  494. #define MakeVersion(Major,Minor) ((DWORD) MAKEWORD(Minor,Major))
  495. #define GetCurrentVersion() MakeVersion(CAPTUREFILE_VERSION_MAJOR,CAPTUREFILE_VERSION_MINOR)
  496. #define NETMON_1_0_CAPTUREFILE_SIGNATURE MAKE_IDENTIFIER('R','T','S','S')
  497. #define NETMON_2_0_CAPTUREFILE_SIGNATURE MAKE_IDENTIFIER('G','M','B','U')
  498. typedef struct _CAPTUREFILE_HEADER_VALUES {
  499. DWORD Signature;
  500. BYTE BCDVerMinor;
  501. BYTE BCDVerMajor;
  502. WORD MacType;
  503. SYSTEMTIME TimeStamp;
  504. DWORD FrameTableOffset;
  505. DWORD FrameTableLength;
  506. DWORD UserDataOffset;
  507. DWORD UserDataLength;
  508. DWORD CommentDataOffset;
  509. DWORD CommentDataLength;
  510. DWORD StatisticsOffset;
  511. DWORD StatisticsLength;
  512. DWORD NetworkInfoOffset;
  513. DWORD NetworkInfoLength;
  514. DWORD ConversationStatsOffset;
  515. DWORD ConversationStatsLength;
  516. } CAPTUREFILE_HEADER_VALUES;
  517. typedef CAPTUREFILE_HEADER_VALUES *LPCAPTUREFILE_HEADER_VALUES;
  518. #define CAPTUREFILE_HEADER_VALUES_SIZE (sizeof(CAPTUREFILE_HEADER_VALUES))
  519. #pragma pack(pop)
  520. #pragma pack(push,1)
  521. typedef struct _CAPTUREFILE_HEADER {
  522. __C89_NAMELESS union {
  523. CAPTUREFILE_HEADER_VALUES ActualHeader;
  524. BYTE Buffer[72];
  525. };
  526. BYTE Reserved[56];
  527. } CAPTUREFILE_HEADER;
  528. typedef CAPTUREFILE_HEADER *LPCAPTUREFILE_HEADER;
  529. #define CAPTUREFILE_HEADER_SIZE (sizeof(CAPTUREFILE_HEADER))
  530. #pragma pack(pop)
  531. #pragma pack(push,1)
  532. typedef struct _EFRAMEHDR {
  533. BYTE SrcAddress[6];
  534. BYTE DstAddress[6];
  535. WORD Length;
  536. BYTE DSAP;
  537. BYTE SSAP;
  538. BYTE Control;
  539. BYTE ProtocolID[3];
  540. WORD EtherType;
  541. } EFRAMEHDR;
  542. typedef struct _TRFRAMEHDR {
  543. BYTE AC;
  544. BYTE FC;
  545. BYTE SrcAddress[6];
  546. BYTE DstAddress[6];
  547. BYTE DSAP;
  548. BYTE SSAP;
  549. BYTE Control;
  550. BYTE ProtocolID[3];
  551. WORD EtherType;
  552. } TRFRAMEHDR;
  553. #define DEFAULT_TR_AC (0)
  554. #define DEFAULT_TR_FC (0x40)
  555. #define DEFAULT_SAP (0xaa)
  556. #define DEFAULT_CONTROL (0x3)
  557. #define DEFAULT_ETHERTYPE (0x8419)
  558. typedef struct _FDDIFRAMEHDR {
  559. BYTE FC;
  560. BYTE SrcAddress[6];
  561. BYTE DstAddress[6];
  562. BYTE DSAP;
  563. BYTE SSAP;
  564. BYTE Control;
  565. BYTE ProtocolID[3];
  566. WORD EtherType;
  567. } FDDIFRAMEHDR;
  568. #define DEFAULT_FDDI_FC (0x10)
  569. typedef struct _FDDISTATFRAME {
  570. __MINGW_EXTENSION __int64 TimeStamp;
  571. DWORD FrameLength;
  572. DWORD nBytesAvail;
  573. FDDIFRAMEHDR FrameHeader;
  574. BYTE FrameID[4];
  575. DWORD Flags;
  576. DWORD FrameType;
  577. WORD StatsDataLen;
  578. DWORD StatsVersion;
  579. STATISTICS Statistics;
  580. } FDDISTATFRAME;
  581. typedef FDDISTATFRAME *LPFDDISTATFRAME;
  582. typedef FDDISTATFRAME UNALIGNED *ULPFDDISTATFRAME;
  583. #define FDDISTATFRAME_SIZE (sizeof(FDDISTATFRAME))
  584. typedef struct _ATMFRAMEHDR {
  585. BYTE SrcAddress[6];
  586. BYTE DstAddress[6];
  587. WORD Vpi;
  588. WORD Vci;
  589. } ATMFRAMEHDR;
  590. typedef struct _ATMSTATFRAME {
  591. __MINGW_EXTENSION __int64 TimeStamp;
  592. DWORD FrameLength;
  593. DWORD nBytesAvail;
  594. ATMFRAMEHDR FrameHeader;
  595. BYTE FrameID[4];
  596. DWORD Flags;
  597. DWORD FrameType;
  598. WORD StatsDataLen;
  599. DWORD StatsVersion;
  600. STATISTICS Statistics;
  601. } ATMSTATFRAME;
  602. typedef ATMSTATFRAME *LPATMSTATFRAME;
  603. typedef ATMSTATFRAME UNALIGNED *ULPATMSTATFRAME;
  604. #define ATMSTATFRAME_SIZE (sizeof(ATMSTATFRAME))
  605. typedef struct _TRSTATFRAME {
  606. __MINGW_EXTENSION __int64 TimeStamp;
  607. DWORD FrameLength;
  608. DWORD nBytesAvail;
  609. TRFRAMEHDR FrameHeader;
  610. BYTE FrameID[4];
  611. DWORD Flags;
  612. DWORD FrameType;
  613. WORD StatsDataLen;
  614. DWORD StatsVersion;
  615. STATISTICS Statistics;
  616. } TRSTATFRAME;
  617. typedef TRSTATFRAME *LPTRSTATFRAME;
  618. typedef TRSTATFRAME UNALIGNED *ULPTRSTATFRAME;
  619. #define TRSTATFRAME_SIZE (sizeof(TRSTATFRAME))
  620. typedef struct _ESTATFRAME {
  621. __MINGW_EXTENSION __int64 TimeStamp;
  622. DWORD FrameLength;
  623. DWORD nBytesAvail;
  624. EFRAMEHDR FrameHeader;
  625. BYTE FrameID[4];
  626. DWORD Flags;
  627. DWORD FrameType;
  628. WORD StatsDataLen;
  629. DWORD StatsVersion;
  630. STATISTICS Statistics;
  631. } ESTATFRAME;
  632. typedef ESTATFRAME *LPESTATFRAME;
  633. typedef ESTATFRAME UNALIGNED *ULPESTATFRAME;
  634. #define ESTATFRAME_SIZE (sizeof(ESTATFRAME))
  635. #define STATISTICS_VERSION_1_0 (0)
  636. #define STATISTICS_VERSION_2_0 (0x20)
  637. #define MAX_STATSFRAME_SIZE (sizeof(TRSTATFRAME))
  638. #define STATS_FRAME_TYPE (103)
  639. #pragma pack(pop)
  640. #pragma pack(push,1)
  641. typedef struct _ADDRESS {
  642. DWORD Type;
  643. __C89_NAMELESS union {
  644. BYTE MACAddress[MAC_ADDRESS_SIZE];
  645. BYTE IPAddress[IP_ADDRESS_SIZE];
  646. BYTE IPXRawAddress[IPX_ADDR_SIZE];
  647. IPX_ADDR IPXAddress;
  648. BYTE VinesIPRawAddress[VINES_IP_ADDRESS_SIZE];
  649. VINES_IP_ADDRESS VinesIPAddress;
  650. ETHERNET_SRC_ADDRESS EthernetSrcAddress;
  651. ETHERNET_DST_ADDRESS EthernetDstAddress;
  652. TOKENRING_SRC_ADDRESS TokenringSrcAddress;
  653. TOKENRING_DST_ADDRESS TokenringDstAddress;
  654. FDDI_SRC_ADDRESS FddiSrcAddress;
  655. FDDI_DST_ADDRESS FddiDstAddress;
  656. };
  657. WORD Flags;
  658. } ADDRESS;
  659. typedef ADDRESS *LPADDRESS;
  660. #define ADDRESS_SIZE sizeof(ADDRESS)
  661. #pragma pack(pop)
  662. typedef struct _ADDRESSPAIR {
  663. WORD AddressFlags;
  664. WORD NalReserved;
  665. ADDRESS DstAddress;
  666. ADDRESS SrcAddress;
  667. } ADDRESSPAIR;
  668. typedef ADDRESSPAIR *LPADDRESSPAIR;
  669. #define ADDRESSPAIR_SIZE sizeof(ADDRESSPAIR)
  670. typedef struct _ADDRESSTABLE {
  671. DWORD nAddressPairs;
  672. DWORD nNonMacAddressPairs;
  673. ADDRESSPAIR AddressPair[MAX_ADDRESS_PAIRS];
  674. } ADDRESSTABLE;
  675. typedef ADDRESSTABLE *LPADDRESSTABLE;
  676. #define ADDRESSTABLE_SIZE sizeof(ADDRESSTABLE)
  677. typedef struct _ADDRESSINFO {
  678. ADDRESS Address;
  679. WCHAR Name[MAX_NAME_SIZE];
  680. DWORD Flags;
  681. LPVOID lpAddressInstData;
  682. } ADDRESSINFO;
  683. typedef struct _ADDRESSINFO *LPADDRESSINFO;
  684. #define ADDRESSINFO_SIZE sizeof(ADDRESSINFO)
  685. typedef struct _ADDRESSINFOTABLE {
  686. DWORD nAddressInfos;
  687. LPADDRESSINFO lpAddressInfo[0];
  688. } ADDRESSINFOTABLE;
  689. typedef ADDRESSINFOTABLE *LPADDRESSINFOTABLE;
  690. #define ADDRESSINFOTABLE_SIZE sizeof(ADDRESSINFOTABLE)
  691. DWORD __cdecl SetNPPAddressFilterInBlob(HBLOB hBlob,LPADDRESSTABLE pAddressTable);
  692. DWORD __cdecl GetNPPAddressFilterFromBlob(HBLOB hBlob,LPADDRESSTABLE pAddressTable,HBLOB hErrorBlob);
  693. #pragma pack(push,8)
  694. typedef enum __MIDL___MIDL_itf_netmon_0000_0005 {
  695. NMCOLUMNTYPE_UINT8 = 0,
  696. NMCOLUMNTYPE_SINT8,NMCOLUMNTYPE_UINT16,NMCOLUMNTYPE_SINT16,NMCOLUMNTYPE_UINT32,NMCOLUMNTYPE_SINT32,
  697. NMCOLUMNTYPE_FLOAT64,NMCOLUMNTYPE_FRAME,NMCOLUMNTYPE_YESNO,NMCOLUMNTYPE_ONOFF,NMCOLUMNTYPE_TRUEFALSE,
  698. NMCOLUMNTYPE_MACADDR,NMCOLUMNTYPE_IPXADDR,NMCOLUMNTYPE_IPADDR,NMCOLUMNTYPE_VARTIME,NMCOLUMNTYPE_STRING
  699. } NMCOLUMNTYPE;
  700. typedef struct _NMCOLUMNVARIANT {
  701. NMCOLUMNTYPE Type;
  702. union {
  703. BYTE Uint8Val;
  704. char Sint8Val;
  705. WORD Uint16Val;
  706. short Sint16Val;
  707. DWORD Uint32Val;
  708. __LONG32 Sint32Val;
  709. DOUBLE Float64Val;
  710. DWORD FrameVal;
  711. WINBOOL YesNoVal;
  712. WINBOOL OnOffVal;
  713. WINBOOL TrueFalseVal;
  714. BYTE MACAddrVal[6];
  715. IPX_ADDR IPXAddrVal;
  716. DWORD IPAddrVal;
  717. DOUBLE VarTimeVal;
  718. LPCSTR pStringVal;
  719. } Value;
  720. } NMCOLUMNVARIANT;
  721. typedef struct _NMCOLUMNINFO {
  722. LPSTR szColumnName;
  723. NMCOLUMNVARIANT VariantData;
  724. } NMCOLUMNINFO;
  725. typedef NMCOLUMNINFO *PNMCOLUMNINFO;
  726. typedef LPSTR JTYPE;
  727. typedef struct _NMEVENTDATA {
  728. LPSTR pszReserved;
  729. BYTE Version;
  730. DWORD EventIdent;
  731. DWORD Flags;
  732. DWORD Severity;
  733. BYTE NumColumns;
  734. LPSTR szSourceName;
  735. LPSTR szEventName;
  736. LPSTR szDescription;
  737. LPSTR szMachine;
  738. JTYPE Justification;
  739. PVOID pvReserved;
  740. SYSTEMTIME SysTime;
  741. NMCOLUMNINFO Column[0];
  742. } NMEVENTDATA;
  743. typedef NMEVENTDATA *PNMEVENTDATA;
  744. #pragma pack(pop)
  745. #define NMEVENTFLAG_EXPERT (0x1)
  746. #define NMEVENTFLAG_DO_NOT_DISPLAY_SEVERITY (0x80000000)
  747. #define NMEVENTFLAG_DO_NOT_DISPLAY_SOURCE (0x40000000)
  748. #define NMEVENTFLAG_DO_NOT_DISPLAY_EVENT_NAME (0x20000000)
  749. #define NMEVENTFLAG_DO_NOT_DISPLAY_DESCRIPTION (0x10000000)
  750. #define NMEVENTFLAG_DO_NOT_DISPLAY_MACHINE (0x8000000)
  751. #define NMEVENTFLAG_DO_NOT_DISPLAY_TIME (0x4000000)
  752. #define NMEVENTFLAG_DO_NOT_DISPLAY_DATE (0x2000000)
  753. #define NMEVENTFLAG_DO_NOT_DISPLAY_FIXED_COLUMNS (0xfe000000)
  754. enum _NMEVENT_SEVERITIES {
  755. NMEVENT_SEVERITY_INFORMATIONAL = 0,NMEVENT_SEVERITY_WARNING,
  756. NMEVENT_SEVERITY_STRONG_WARNING,NMEVENT_SEVERITY_ERROR,
  757. NMEVENT_SEVERITY_SEVERE_ERROR,NMEVENT_SEVERITY_CRITICAL_ERROR
  758. };
  759. typedef struct __MIDL___MIDL_itf_netmon_0000_0007 {
  760. DWORD dwNumBlobs;
  761. HBLOB hBlobs[1];
  762. } BLOB_TABLE;
  763. typedef BLOB_TABLE *PBLOB_TABLE;
  764. typedef struct __MIDL___MIDL_itf_netmon_0000_0008 {
  765. DWORD size;
  766. BYTE *pBytes;
  767. } MBLOB;
  768. typedef struct __MIDL___MIDL_itf_netmon_0000_0009 {
  769. DWORD dwNumBlobs;
  770. MBLOB mBlobs[1];
  771. } MBLOB_TABLE;
  772. typedef MBLOB_TABLE *PMBLOB_TABLE;
  773. DWORD __cdecl GetNPPBlobTable(HBLOB hFilterBlob,PBLOB_TABLE *ppBlobTable);
  774. DWORD __cdecl GetNPPBlobFromUI(HWND hwnd,HBLOB hFilterBlob,HBLOB *phBlob);
  775. DWORD __cdecl GetNPPBlobFromUIExU(HWND hwnd,HBLOB hFilterBlob,HBLOB *phBlob,char *szHelpFileName);
  776. DWORD __cdecl SelectNPPBlobFromTable(HWND hwnd,PBLOB_TABLE pBlobTable,HBLOB *hBlob);
  777. DWORD __cdecl SelectNPPBlobFromTableExU(HWND hwnd,PBLOB_TABLE pBlobTable,HBLOB *hBlob,char *szHelpFileName);
  778. static __inline DWORD BLOB_TABLE_SIZE(DWORD dwNumBlobs) { return (DWORD) (sizeof(BLOB_TABLE)+dwNumBlobs*sizeof(HBLOB)); }
  779. static __inline PBLOB_TABLE AllocBlobTable(DWORD dwNumBlobs) {
  780. DWORD size = BLOB_TABLE_SIZE(dwNumBlobs);
  781. return (PBLOB_TABLE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size);
  782. }
  783. static __inline DWORD MBLOB_TABLE_SIZE(DWORD dwNumBlobs) { return (DWORD) (sizeof(MBLOB_TABLE)+dwNumBlobs*sizeof(MBLOB)); }
  784. static __inline PMBLOB_TABLE AllocMBlobTable(DWORD dwNumBlobs) {
  785. DWORD size = MBLOB_TABLE_SIZE(dwNumBlobs);
  786. return (PMBLOB_TABLE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size);
  787. }
  788. DWORD __cdecl GetNPPBlobs(PBLOB_TABLE *ppBlobTable);
  789. typedef DWORD (_cdecl *BLOBSPROC) (PBLOB_TABLE *ppBlobTable);
  790. DWORD __cdecl GetConfigBlob(HBLOB *phBlob);
  791. typedef DWORD (_cdecl *GETCFGBLOB)(HBLOB,HBLOB*);
  792. typedef DWORD (_cdecl *CFGPROC)(HWND hwnd,HBLOB SpecialBlob,PBLOB_TABLE *ppBlobTable);
  793. WINBOOL __cdecl FilterNPPBlob(HBLOB hBlob,HBLOB FilterBlob);
  794. WINBOOL __cdecl RaiseNMEvent(HINSTANCE hInstance,WORD EventType,DWORD EventID,WORD nStrings,const char **aInsertStrs,LPVOID lpvData,DWORD dwDataSize);
  795. #ifndef __cplusplus
  796. #ifndef try
  797. #define try __try
  798. #endif
  799. #ifndef except
  800. #define except __except
  801. #endif
  802. #endif
  803. #define WINDOWS_VERSION_UNKNOWN (0)
  804. #define WINDOWS_VERSION_WIN32S (1)
  805. #define WINDOWS_VERSION_WIN32C (2)
  806. #define WINDOWS_VERSION_WIN32 (3)
  807. #define FRAME_MASK_ETHERNET ((BYTE)~0x1)
  808. #define FRAME_MASK_TOKENRING ((BYTE)~0x80)
  809. #define FRAME_MASK_FDDI ((BYTE)~0x1)
  810. typedef LPVOID HOBJECTHEAP;
  811. typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP,LPVOID);
  812. typedef struct _TIMER *HTIMER;
  813. typedef VOID (WINAPI *BHTIMERPROC)(LPVOID);
  814. HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc,LPVOID InstData,DWORD TimeOut);
  815. VOID WINAPI BhKillTimer(HTIMER hTimer);
  816. DWORD WINAPI BhGetLastError(VOID);
  817. DWORD WINAPI BhSetLastError(DWORD Error);
  818. HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize,OBJECTPROC ObjectProc);
  819. HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap);
  820. LPVOID WINAPI AllocObject(HOBJECTHEAP hObjectHeap);
  821. LPVOID WINAPI FreeObject(HOBJECTHEAP hObjectHeap,LPVOID ObjectMemory);
  822. DWORD WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap,DWORD nObjects);
  823. DWORD WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap);
  824. VOID WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap);
  825. LPVOID WINAPI AllocMemory(SIZE_T size);
  826. LPVOID WINAPI ReallocMemory(LPVOID ptr,SIZE_T NewSize);
  827. VOID WINAPI FreeMemory(LPVOID ptr);
  828. VOID WINAPI TestMemory(LPVOID ptr);
  829. SIZE_T WINAPI MemorySize(LPVOID ptr);
  830. HANDLE WINAPI MemoryHandle(LPBYTE ptr);
  831. LPEXPRESSION WINAPI InitializeExpression(LPEXPRESSION Expression);
  832. LPPATTERNMATCH WINAPI InitializePattern(LPPATTERNMATCH Pattern,LPVOID ptr,DWORD offset,DWORD length);
  833. LPEXPRESSION WINAPI AndExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern);
  834. LPEXPRESSION WINAPI OrExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern);
  835. LPPATTERNMATCH WINAPI NegatePattern(LPPATTERNMATCH Pattern);
  836. LPADDRESSTABLE2 WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE2 AddressTable);
  837. LPADDRESS2 WINAPI NormalizeAddress(LPADDRESS2 Address);
  838. LPADDRESSTABLE2 WINAPI NormalizeAddressTable(LPADDRESSTABLE2 AddressTable);
  839. DWORD WINAPI BhGetWindowsVersion(VOID);
  840. WINBOOL WINAPI IsDaytona(VOID);
  841. VOID __cdecl dprintf(LPSTR format,...);
  842. typedef VOID UNALIGNED *ULPVOID;
  843. typedef BYTE UNALIGNED *ULPBYTE;
  844. typedef WORD UNALIGNED *ULPWORD;
  845. typedef DWORD UNALIGNED *ULPDWORD;
  846. typedef CHAR UNALIGNED *ULPSTR;
  847. typedef SYSTEMTIME UNALIGNED *ULPSYSTEMTIME;
  848. typedef struct _PARSER *HPARSER;
  849. typedef struct _CAPFRAMEDESC *HFRAME;
  850. typedef struct _CAPTURE *HCAPTURE;
  851. typedef struct _FILTER *HFILTER;
  852. typedef struct _ADDRESSDB *HADDRESSDB;
  853. typedef struct _PROTOCOL *HPROTOCOL;
  854. typedef DWORD_PTR HPROPERTY;
  855. typedef HPROTOCOL *LPHPROTOCOL;
  856. #define GetTableSize(TableBaseSize,nElements,ElementSize) ((TableBaseSize) + ((nElements) *(ElementSize)))
  857. typedef DWORD OBJECTTYPE;
  858. #ifndef MAKE_IDENTIFIER
  859. #define MAKE_IDENTIFIER(a,b,c,d) ((DWORD) MAKELONG(MAKEWORD(a,b),MAKEWORD(c,d)))
  860. #endif
  861. #define HANDLE_TYPE_INVALID MAKE_IDENTIFIER(-1,-1,-1,-1)
  862. #define HANDLE_TYPE_CAPTURE MAKE_IDENTIFIER('C','A','P','$')
  863. #define HANDLE_TYPE_PARSER MAKE_IDENTIFIER('P','S','R','$')
  864. #define HANDLE_TYPE_ADDRESSDB MAKE_IDENTIFIER('A','D','R','$')
  865. #define HANDLE_TYPE_PROTOCOL MAKE_IDENTIFIER('P','R','T','$')
  866. #define HANDLE_TYPE_BUFFER MAKE_IDENTIFIER('B','U','F','$')
  867. #define INLINE __inline
  868. #define BHAPI WINAPI
  869. #define MAX_NAME_LENGTH (16)
  870. #define MAX_ADDR_LENGTH (6)
  871. #define ETYPE_LOOP (0x9000)
  872. #define ETYPE_3COM_NETMAP1 (0x9001)
  873. #define ETYPE_3COM_NETMAP2 (0x9002)
  874. #define ETYPE_IBM_RT (0x80d5)
  875. #define ETYPE_NETWARE (0x8137)
  876. #define ETYPE_XNS1 (0x600)
  877. #define ETYPE_XNS2 (0x807)
  878. #define ETYPE_3COM_NBP0 (0x3c00)
  879. #define ETYPE_3COM_NBP1 (0x3c01)
  880. #define ETYPE_3COM_NBP2 (0x3c02)
  881. #define ETYPE_3COM_NBP3 (0x3c03)
  882. #define ETYPE_3COM_NBP4 (0x3c04)
  883. #define ETYPE_3COM_NBP5 (0x3c05)
  884. #define ETYPE_3COM_NBP6 (0x3c06)
  885. #define ETYPE_3COM_NBP7 (0x3c07)
  886. #define ETYPE_3COM_NBP8 (0x3c08)
  887. #define ETYPE_3COM_NBP9 (0x3c09)
  888. #define ETYPE_3COM_NBP10 (0x3c0a)
  889. #define ETYPE_IP (0x800)
  890. #define ETYPE_ARP1 (0x806)
  891. #define ETYPE_ARP2 (0x807)
  892. #define ETYPE_RARP (0x8035)
  893. #define ETYPE_TRLR0 (0x1000)
  894. #define ETYPE_TRLR1 (0x1001)
  895. #define ETYPE_TRLR2 (0x1002)
  896. #define ETYPE_TRLR3 (0x1003)
  897. #define ETYPE_TRLR4 (0x1004)
  898. #define ETYPE_TRLR5 (0x1005)
  899. #define ETYPE_PUP (0x200)
  900. #define ETYPE_PUP_ARP (0x201)
  901. #define ETYPE_APPLETALK_ARP (0x80f3)
  902. #define ETYPE_APPLETALK_LAP (0x809b)
  903. #define ETYPE_SNMP (0x814c)
  904. #define SAP_SNAP (0xaa)
  905. #define SAP_BPDU (0x42)
  906. #define SAP_IBM_NM (0xf4)
  907. #define SAP_IBM_NETBIOS (0xf0)
  908. #define SAP_SNA1 (0x4)
  909. #define SAP_SNA2 (0x5)
  910. #define SAP_SNA3 (0x8)
  911. #define SAP_SNA4 (0xc)
  912. #define SAP_NETWARE1 (0x10)
  913. #define SAP_NETWARE2 (0xe0)
  914. #define SAP_NETWARE3 (0xfe)
  915. #define SAP_IP (0x6)
  916. #define SAP_X25 (0x7e)
  917. #define SAP_RPL1 (0xf8)
  918. #define SAP_RPL2 (0xfc)
  919. #define SAP_UB (0xfa)
  920. #define SAP_XNS (0x80)
  921. #define PROP_TYPE_VOID (0)
  922. #define PROP_TYPE_SUMMARY (0x1)
  923. #define PROP_TYPE_BYTE (0x2)
  924. #define PROP_TYPE_WORD (0x3)
  925. #define PROP_TYPE_DWORD (0x4)
  926. #define PROP_TYPE_LARGEINT (0x5)
  927. #define PROP_TYPE_ADDR (0x6)
  928. #define PROP_TYPE_TIME (0x7)
  929. #define PROP_TYPE_STRING (0x8)
  930. #define PROP_TYPE_IP_ADDRESS (0x9)
  931. #define PROP_TYPE_IPX_ADDRESS (0xa)
  932. #define PROP_TYPE_BYTESWAPPED_WORD (0xb)
  933. #define PROP_TYPE_BYTESWAPPED_DWORD (0xc)
  934. #define PROP_TYPE_TYPED_STRING (0xd)
  935. #define PROP_TYPE_RAW_DATA (0xe)
  936. #define PROP_TYPE_COMMENT (0xf)
  937. #define PROP_TYPE_SRCFRIENDLYNAME (0x10)
  938. #define PROP_TYPE_DSTFRIENDLYNAME (0x11)
  939. #define PROP_TYPE_TOKENRING_ADDRESS (0x12)
  940. #define PROP_TYPE_FDDI_ADDRESS (0x13)
  941. #define PROP_TYPE_ETHERNET_ADDRESS (0x14)
  942. #define PROP_TYPE_OBJECT_IDENTIFIER (0x15)
  943. #define PROP_TYPE_VINES_IP_ADDRESS (0x16)
  944. #define PROP_TYPE_VAR_LEN_SMALL_INT (0x17)
  945. #define PROP_TYPE_ATM_ADDRESS (0x18)
  946. #define PROP_TYPE_1394_ADDRESS (0x19)
  947. #define PROP_TYPE_IP6_ADDRESS (0x1a)
  948. #define PROP_QUAL_NONE (0)
  949. #define PROP_QUAL_RANGE (0x1)
  950. #define PROP_QUAL_SET (0x2)
  951. #define PROP_QUAL_BITFIELD (0x3)
  952. #define PROP_QUAL_LABELED_SET (0x4)
  953. #define PROP_QUAL_LABELED_BITFIELD (0x8)
  954. #define PROP_QUAL_CONST (0x9)
  955. #define PROP_QUAL_FLAGS (0xa)
  956. #define PROP_QUAL_ARRAY (0xb)
  957. typedef LARGE_INTEGER *LPLARGEINT;
  958. typedef LARGE_INTEGER UNALIGNED *ULPLARGEINT;
  959. typedef struct _RANGE {
  960. DWORD MinValue;
  961. DWORD MaxValue;
  962. } RANGE;
  963. typedef RANGE *LPRANGE;
  964. typedef struct _LABELED_BYTE {
  965. BYTE Value;
  966. LPSTR Label;
  967. } LABELED_BYTE;
  968. typedef LABELED_BYTE *LPLABELED_BYTE;
  969. typedef struct _LABELED_WORD {
  970. WORD Value;
  971. LPSTR Label;
  972. } LABELED_WORD;
  973. typedef LABELED_WORD *LPLABELED_WORD;
  974. typedef struct _LABELED_DWORD {
  975. DWORD Value;
  976. LPSTR Label;
  977. } LABELED_DWORD;
  978. typedef LABELED_DWORD *LPLABELED_DWORD;
  979. typedef struct _LABELED_LARGEINT {
  980. LARGE_INTEGER Value;
  981. LPSTR Label;
  982. } LABELED_LARGEINT;
  983. typedef LABELED_LARGEINT *LPLABELED_LARGEINT;
  984. typedef struct _LABELED_SYSTEMTIME {
  985. SYSTEMTIME Value;
  986. LPSTR Label;
  987. } LABELED_SYSTEMTIME;
  988. typedef LABELED_SYSTEMTIME *LPLABELED_SYSTEMTIME;
  989. typedef struct _LABELED_BIT {
  990. BYTE BitNumber;
  991. LPSTR LabelOff;
  992. LPSTR LabelOn;
  993. } LABELED_BIT;
  994. typedef LABELED_BIT *LPLABELED_BIT;
  995. #define TYPED_STRING_NORMAL (1)
  996. #define TYPED_STRING_UNICODE (2)
  997. #define TYPED_STRING_EXFLAG (1)
  998. typedef struct _TYPED_STRING {
  999. BYTE StringType:7;
  1000. BYTE fStringEx:1;
  1001. LPSTR lpString;
  1002. BYTE Byte[0];
  1003. } TYPED_STRING;
  1004. typedef TYPED_STRING *LPTYPED_STRING;
  1005. typedef struct _OBJECT_IDENTIFIER {
  1006. DWORD Length;
  1007. LPDWORD lpIdentifier;
  1008. } OBJECT_IDENTIFIER;
  1009. typedef OBJECT_IDENTIFIER *LPOBJECT_IDENTIFIER;
  1010. typedef struct _SET {
  1011. DWORD nEntries;
  1012. __C89_NAMELESS union {
  1013. LPVOID lpVoidTable;
  1014. LPBYTE lpByteTable;
  1015. LPWORD lpWordTable;
  1016. LPDWORD lpDwordTable;
  1017. LPLARGEINT lpLargeIntTable;
  1018. LPSYSTEMTIME lpSystemTimeTable;
  1019. LPLABELED_BYTE lpLabeledByteTable;
  1020. LPLABELED_WORD lpLabeledWordTable;
  1021. LPLABELED_DWORD lpLabeledDwordTable;
  1022. LPLABELED_LARGEINT lpLabeledLargeIntTable;
  1023. LPLABELED_SYSTEMTIME lpLabeledSystemTimeTable;
  1024. LPLABELED_BIT lpLabeledBit;
  1025. };
  1026. } SET;
  1027. typedef SET *LPSET;
  1028. typedef struct _STRINGTABLE {
  1029. DWORD nStrings;
  1030. LPSTR String[0];
  1031. } STRINGTABLE;
  1032. typedef STRINGTABLE *LPSTRINGTABLE;
  1033. #define STRINGTABLE_SIZE sizeof(STRINGTABLE)
  1034. typedef struct _RECOGNIZEDATA {
  1035. WORD ProtocolID;
  1036. WORD nProtocolOffset;
  1037. LPVOID InstData;
  1038. } RECOGNIZEDATA;
  1039. typedef RECOGNIZEDATA *LPRECOGNIZEDATA;
  1040. typedef struct _RECOGNIZEDATATABLE {
  1041. WORD nRecognizeDatas;
  1042. RECOGNIZEDATA RecognizeData[0];
  1043. } RECOGNIZEDATATABLE;
  1044. typedef RECOGNIZEDATATABLE *LPRECOGNIZEDATATABLE;
  1045. typedef struct _PROPERTYINFO {
  1046. HPROPERTY hProperty;
  1047. DWORD Version;
  1048. LPSTR Label;
  1049. LPSTR Comment;
  1050. BYTE DataType;
  1051. BYTE DataQualifier;
  1052. __C89_NAMELESS union {
  1053. LPVOID lpExtendedInfo;
  1054. LPRANGE lpRange;
  1055. LPSET lpSet;
  1056. DWORD Bitmask;
  1057. DWORD Value;
  1058. };
  1059. WORD FormatStringSize;
  1060. LPVOID InstanceData;
  1061. } PROPERTYINFO;
  1062. typedef PROPERTYINFO *LPPROPERTYINFO;
  1063. #define PROPERTYINFO_SIZE (sizeof(PROPERTYINFO))
  1064. typedef struct _PROPERTYINSTEX {
  1065. WORD Length;
  1066. WORD LengthEx;
  1067. ULPVOID lpData;
  1068. __C89_NAMELESS union {
  1069. BYTE Byte[1];
  1070. WORD Word[1];
  1071. DWORD Dword[1];
  1072. LARGE_INTEGER LargeInt[1];
  1073. SYSTEMTIME SysTime[1];
  1074. TYPED_STRING TypedString;
  1075. };
  1076. } PROPERTYINSTEX;
  1077. typedef PROPERTYINSTEX *LPPROPERTYINSTEX;
  1078. typedef PROPERTYINSTEX UNALIGNED *ULPPROPERTYINSTEX;
  1079. #define PROPERTYINSTEX_SIZE sizeof(PROPERTYINSTEX)
  1080. typedef struct _PROPERTYINST {
  1081. LPPROPERTYINFO lpPropertyInfo;
  1082. LPSTR szPropertyText;
  1083. __C89_NAMELESS union {
  1084. LPVOID lpData;
  1085. ULPBYTE lpByte;
  1086. ULPWORD lpWord;
  1087. ULPDWORD lpDword;
  1088. ULPLARGEINT lpLargeInt;
  1089. ULPSYSTEMTIME lpSysTime;
  1090. LPPROPERTYINSTEX lpPropertyInstEx;
  1091. };
  1092. WORD DataLength;
  1093. WORD Level : 4;
  1094. WORD HelpID : 12;
  1095. DWORD IFlags;
  1096. } PROPERTYINST;
  1097. typedef PROPERTYINST *LPPROPERTYINST;
  1098. #define PROPERTYINST_SIZE sizeof(PROPERTYINST)
  1099. #define IFLAG_ERROR (0x1)
  1100. #define IFLAG_SWAPPED (0x2)
  1101. #define IFLAG_UNICODE (0x4)
  1102. typedef struct _PROPERTYINSTTABLE {
  1103. WORD nPropertyInsts;
  1104. WORD nPropertyInstIndex;
  1105. } PROPERTYINSTTABLE;
  1106. typedef PROPERTYINSTTABLE *LPPROPERTYINSTTABLE;
  1107. #define PROPERTYINSTTABLE_SIZE (sizeof(PROPERTYINSTTABLE))
  1108. typedef struct _PROPERTYTABLE {
  1109. LPVOID lpFormatBuffer;
  1110. DWORD FormatBufferLength;
  1111. DWORD nTotalPropertyInsts;
  1112. LPPROPERTYINST lpFirstPropertyInst;
  1113. BYTE nPropertyInstTables;
  1114. PROPERTYINSTTABLE PropertyInstTable[0];
  1115. } PROPERTYTABLE;
  1116. typedef PROPERTYTABLE *LPPROPERTYTABLE;
  1117. #define PROPERTYTABLE_SIZE sizeof(PROPERTYTABLE)
  1118. typedef VOID (WINAPI *REGISTER)(HPROTOCOL);
  1119. typedef VOID (WINAPI *DEREGISTER)(HPROTOCOL);
  1120. typedef LPBYTE (WINAPI *RECOGNIZEFRAME)(HFRAME,ULPBYTE,ULPBYTE,DWORD,DWORD,HPROTOCOL,DWORD,LPDWORD,LPHPROTOCOL,PDWORD_PTR);
  1121. typedef LPBYTE (WINAPI *ATTACHPROPERTIES)(HFRAME,ULPBYTE,ULPBYTE,DWORD,DWORD,HPROTOCOL,DWORD,DWORD_PTR);
  1122. typedef DWORD (WINAPI *FORMATPROPERTIES)(HFRAME,ULPBYTE,ULPBYTE,DWORD,LPPROPERTYINST);
  1123. typedef struct _ENTRYPOINTS {
  1124. REGISTER Register;
  1125. DEREGISTER Deregister;
  1126. RECOGNIZEFRAME RecognizeFrame;
  1127. ATTACHPROPERTIES AttachProperties;
  1128. FORMATPROPERTIES FormatProperties;
  1129. } ENTRYPOINTS;
  1130. typedef ENTRYPOINTS *LPENTRYPOINTS;
  1131. #define ENTRYPOINTS_SIZE sizeof(ENTRYPOINTS)
  1132. typedef struct _PROPERTYDATABASE {
  1133. DWORD nProperties;
  1134. LPPROPERTYINFO PropertyInfo[0];
  1135. } PROPERTYDATABASE;
  1136. #define PROPERTYDATABASE_SIZE sizeof(PROPERTYDATABASE)
  1137. typedef PROPERTYDATABASE *LPPROPERTYDATABASE;
  1138. typedef struct _PROTOCOLINFO {
  1139. DWORD ProtocolID;
  1140. LPPROPERTYDATABASE PropertyDatabase;
  1141. BYTE ProtocolName[16];
  1142. BYTE HelpFile[16];
  1143. BYTE Comment[128];
  1144. } PROTOCOLINFO;
  1145. typedef PROTOCOLINFO *LPPROTOCOLINFO;
  1146. #define PROTOCOLINFO_SIZE sizeof(PROTOCOLINFO)
  1147. typedef struct _PROTOCOLTABLE {
  1148. DWORD nProtocols;
  1149. HPROTOCOL hProtocol[1];
  1150. } PROTOCOLTABLE;
  1151. typedef PROTOCOLTABLE *LPPROTOCOLTABLE;
  1152. #define PROTOCOLTABLE_SIZE (sizeof(PROTOCOLTABLE) - sizeof(HPROTOCOL))
  1153. #define PROTOCOLTABLE_ACTUAL_SIZE(p) GetTableSize(PROTOCOLTABLE_SIZE,(p)->nProtocols,sizeof(HPROTOCOL))
  1154. #define SORT_BYADDRESS (0)
  1155. #define SORT_BYNAME (1)
  1156. #define PERMANENT_NAME (0x100)
  1157. typedef struct _ADDRESSINFO2 {
  1158. ADDRESS2 Address;
  1159. WCHAR Name[MAX_NAME_SIZE];
  1160. DWORD Flags;
  1161. LPVOID lpAddressInstData;
  1162. } ADDRESSINFO2;
  1163. typedef struct _ADDRESSINFO2 *LPADDRESSINFO2;
  1164. #define ADDRESSINFO2_SIZE sizeof(ADDRESSINFO2)
  1165. typedef struct _ADDRESSINFOTABLE2 {
  1166. DWORD nAddressInfos;
  1167. LPADDRESSINFO2 lpAddressInfo[0];
  1168. } ADDRESSINFOTABLE2;
  1169. typedef ADDRESSINFOTABLE2 *LPADDRESSINFOTABLE2;
  1170. #define ADDRESSINFOTABLE2_SIZE sizeof(ADDRESSINFOTABLE2)
  1171. typedef DWORD (WINAPI *FILTERPROC)(HCAPTURE,HFRAME,LPVOID);
  1172. #define NMERR_SUCCESS (0)
  1173. #define NMERR_MEMORY_MAPPED_FILE_ERROR (1)
  1174. #define NMERR_INVALID_HFILTER (2)
  1175. #define NMERR_CAPTURING (3)
  1176. #define NMERR_NOT_CAPTURING (4)
  1177. #define NMERR_NO_MORE_FRAMES (5)
  1178. #define NMERR_BUFFER_TOO_SMALL (6)
  1179. #define NMERR_FRAME_NOT_RECOGNIZED (7)
  1180. #define NMERR_FILE_ALREADY_EXISTS (8)
  1181. #define NMERR_DRIVER_NOT_FOUND (9)
  1182. #define NMERR_ADDRESS_ALREADY_EXISTS (10)
  1183. #define NMERR_INVALID_HFRAME (11)
  1184. #define NMERR_INVALID_HPROTOCOL (12)
  1185. #define NMERR_INVALID_HPROPERTY (13)
  1186. #define NMERR_LOCKED (14)
  1187. #define NMERR_STACK_EMPTY (15)
  1188. #define NMERR_STACK_OVERFLOW (16)
  1189. #define NMERR_TOO_MANY_PROTOCOLS (17)
  1190. #define NMERR_FILE_NOT_FOUND (18)
  1191. #define NMERR_OUT_OF_MEMORY (19)
  1192. #define NMERR_CAPTURE_PAUSED (20)
  1193. #define NMERR_NO_BUFFERS (21)
  1194. #define NMERR_BUFFERS_ALREADY_EXIST (22)
  1195. #define NMERR_NOT_LOCKED (23)
  1196. #define NMERR_OUT_OF_RANGE (24)
  1197. #define NMERR_LOCK_NESTING_TOO_DEEP (25)
  1198. #define NMERR_LOAD_PARSER_FAILED (26)
  1199. #define NMERR_UNLOAD_PARSER_FAILED (27)
  1200. #define NMERR_INVALID_HADDRESSDB (28)
  1201. #define NMERR_ADDRESS_NOT_FOUND (29)
  1202. #define NMERR_NETWORK_NOT_PRESENT (30)
  1203. #define NMERR_NO_PROPERTY_DATABASE (31)
  1204. #define NMERR_PROPERTY_NOT_FOUND (32)
  1205. #define NMERR_INVALID_HPROPERTYDB (33)
  1206. #define NMERR_PROTOCOL_NOT_ENABLED (34)
  1207. #define NMERR_PROTOCOL_NOT_FOUND (35)
  1208. #define NMERR_INVALID_PARSER_DLL (36)
  1209. #define NMERR_NO_ATTACHED_PROPERTIES (37)
  1210. #define NMERR_NO_FRAMES (38)
  1211. #define NMERR_INVALID_FILE_FORMAT (39)
  1212. #define NMERR_COULD_NOT_CREATE_TEMPFILE (40)
  1213. #define NMERR_OUT_OF_DOS_MEMORY (41)
  1214. #define NMERR_NO_PROTOCOLS_ENABLED (42)
  1215. #define NMERR_UNKNOWN_MACTYPE (46)
  1216. #define NMERR_ROUTING_INFO_NOT_PRESENT (47)
  1217. #define NMERR_INVALID_HNETWORK (48)
  1218. #define NMERR_NETWORK_ALREADY_OPENED (49)
  1219. #define NMERR_NETWORK_NOT_OPENED (50)
  1220. #define NMERR_FRAME_NOT_FOUND (51)
  1221. #define NMERR_NO_HANDLES (53)
  1222. #define NMERR_INVALID_NETWORK_ID (54)
  1223. #define NMERR_INVALID_HCAPTURE (55)
  1224. #define NMERR_PROTOCOL_ALREADY_ENABLED (56)
  1225. #define NMERR_FILTER_INVALID_EXPRESSION (57)
  1226. #define NMERR_TRANSMIT_ERROR (58)
  1227. #define NMERR_INVALID_HBUFFER (59)
  1228. #define NMERR_INVALID_DATA (60)
  1229. #define NMERR_MSDOS_DRIVER_NOT_LOADED (61)
  1230. #define NMERR_WINDOWS_DRIVER_NOT_LOADED (62)
  1231. #define NMERR_MSDOS_DRIVER_INIT_FAILURE (63)
  1232. #define NMERR_WINDOWS_DRIVER_INIT_FAILURE (64)
  1233. #define NMERR_NETWORK_BUSY (65)
  1234. #define NMERR_CAPTURE_NOT_PAUSED (66)
  1235. #define NMERR_INVALID_PACKET_LENGTH (67)
  1236. #define NMERR_INTERNAL_EXCEPTION (69)
  1237. #define NMERR_PROMISCUOUS_MODE_NOT_SUPPORTED (70)
  1238. #define NMERR_MAC_DRIVER_OPEN_FAILURE (71)
  1239. #define NMERR_RUNAWAY_PROTOCOL (72)
  1240. #define NMERR_PENDING (73)
  1241. #define NMERR_ACCESS_DENIED (74)
  1242. #define NMERR_INVALID_HPASSWORD (75)
  1243. #define NMERR_INVALID_PARAMETER (76)
  1244. #define NMERR_FILE_READ_ERROR (77)
  1245. #define NMERR_FILE_WRITE_ERROR (78)
  1246. #define NMERR_PROTOCOL_NOT_REGISTERED (79)
  1247. #define NMERR_IP_ADDRESS_NOT_FOUND (80)
  1248. #define NMERR_TRANSMIT_CANCELLED (81)
  1249. #define NMERR_LOCKED_FRAMES (82)
  1250. #define NMERR_NO_TRANSMITS_PENDING (83)
  1251. #define NMERR_PATH_NOT_FOUND (84)
  1252. #define NMERR_WINDOWS_ERROR (85)
  1253. #define NMERR_NO_FRAME_NUMBER (86)
  1254. #define NMERR_FRAME_HAS_NO_CAPTURE (87)
  1255. #define NMERR_FRAME_ALREADY_HAS_CAPTURE (88)
  1256. #define NMERR_NAL_IS_NOT_REMOTE (89)
  1257. #define NMERR_NOT_SUPPORTED (90)
  1258. #define NMERR_DISCARD_FRAME (91)
  1259. #define NMERR_CANCEL_SAVE_CAPTURE (92)
  1260. #define NMERR_LOST_CONNECTION (93)
  1261. #define NMERR_INVALID_MEDIA_TYPE (94)
  1262. #define NMERR_AGENT_IN_USE (95)
  1263. #define NMERR_TIMEOUT (96)
  1264. #define NMERR_DISCONNECTED (97)
  1265. #define NMERR_SETTIMER_FAILED (98)
  1266. #define NMERR_NETWORK_ERROR (99)
  1267. #define NMERR_INVALID_FRAMESPROC (100)
  1268. #define NMERR_UNKNOWN_CAPTURETYPE (101)
  1269. #define NMERR_NOT_CONNECTED (102)
  1270. #define NMERR_ALREADY_CONNECTED (103)
  1271. #define NMERR_INVALID_REGISTRY_CONFIGURATION (104)
  1272. #define NMERR_DELAYED (105)
  1273. #define NMERR_NOT_DELAYED (106)
  1274. #define NMERR_REALTIME (107)
  1275. #define NMERR_NOT_REALTIME (108)
  1276. #define NMERR_STATS_ONLY (109)
  1277. #define NMERR_NOT_STATS_ONLY (110)
  1278. #define NMERR_TRANSMIT (111)
  1279. #define NMERR_NOT_TRANSMIT (112)
  1280. #define NMERR_TRANSMITTING (113)
  1281. #define NMERR_DISK_NOT_LOCAL_FIXED (114)
  1282. #define NMERR_COULD_NOT_CREATE_DIRECTORY (115)
  1283. #define NMERR_NO_DEFAULT_CAPTURE_DIRECTORY (116)
  1284. #define NMERR_UPLEVEL_CAPTURE_FILE (117)
  1285. #define NMERR_LOAD_EXPERT_FAILED (118)
  1286. #define NMERR_EXPERT_REPORT_FAILED (119)
  1287. #define NMERR_REG_OPERATION_FAILED (120)
  1288. #define NMERR_NO_DLLS_FOUND (121)
  1289. #define NMERR_NO_CONVERSATION_STATS (122)
  1290. #define NMERR_SECURITY_BREACH_CAPTURE_DELETED (123)
  1291. #define NMERR_FRAME_FAILED_FILTER (124)
  1292. #define NMERR_EXPERT_TERMINATE (125)
  1293. #define NMERR_REMOTE_NOT_A_SERVER (126)
  1294. #define NMERR_REMOTE_VERSION_OUTOFSYNC (127)
  1295. #define NMERR_INVALID_EXPERT_GROUP (128)
  1296. #define NMERR_INVALID_EXPERT_NAME (129)
  1297. #define NMERR_INVALID_EXPERT_HANDLE (130)
  1298. #define NMERR_GROUP_NAME_ALREADY_EXISTS (131)
  1299. #define NMERR_INVALID_GROUP_NAME (132)
  1300. #define NMERR_EXPERT_ALREADY_IN_GROUP (133)
  1301. #define NMERR_EXPERT_NOT_IN_GROUP (134)
  1302. #define NMERR_NOT_INITIALIZED (135)
  1303. #define NMERR_INVALID_GROUP_ROOT (136)
  1304. #define NMERR_BAD_VERSION (137)
  1305. #define NMERR_ESP (138)
  1306. #define NMERR_NOT_ESP (139)
  1307. #define NMERR_BLOB_NOT_INITIALIZED (1000)
  1308. #define NMERR_INVALID_BLOB (1001)
  1309. #define NMERR_UPLEVEL_BLOB (1002)
  1310. #define NMERR_BLOB_ENTRY_ALREADY_EXISTS (1003)
  1311. #define NMERR_BLOB_ENTRY_DOES_NOT_EXIST (1004)
  1312. #define NMERR_AMBIGUOUS_SPECIFIER (1005)
  1313. #define NMERR_BLOB_OWNER_NOT_FOUND (1006)
  1314. #define NMERR_BLOB_CATEGORY_NOT_FOUND (1007)
  1315. #define NMERR_UNKNOWN_CATEGORY (1008)
  1316. #define NMERR_UNKNOWN_TAG (1009)
  1317. #define NMERR_BLOB_CONVERSION_ERROR (1010)
  1318. #define NMERR_ILLEGAL_TRIGGER (1011)
  1319. #define NMERR_BLOB_STRING_INVALID (1012)
  1320. #define NMERR_UNABLE_TO_LOAD_LIBRARY (1013)
  1321. #define NMERR_UNABLE_TO_GET_PROCADDR (1014)
  1322. #define NMERR_CLASS_NOT_REGISTERED (1015)
  1323. #define NMERR_INVALID_REMOTE_COMPUTERNAME (1016)
  1324. #define NMERR_RPC_REMOTE_FAILURE (1017)
  1325. #define NMERR_NO_NPPS (3016)
  1326. #define NMERR_NO_MATCHING_NPPS (3017)
  1327. #define NMERR_NO_NPP_SELECTED (3018)
  1328. #define NMERR_NO_INPUT_BLOBS (3019)
  1329. #define NMERR_NO_NPP_DLLS (3020)
  1330. #define NMERR_NO_VALID_NPP_DLLS (3021)
  1331. #ifndef INLINE
  1332. #define INLINE __CRT_INLINE
  1333. #endif
  1334. typedef LONG HRESULT;
  1335. INLINE HRESULT NMERR_TO_HRESULT(DWORD nmerror) {
  1336. HRESULT hResult;
  1337. if(nmerror==NMERR_SUCCESS) hResult = NOERROR;
  1338. else hResult = MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,(WORD)nmerror);
  1339. return hResult;
  1340. }
  1341. INLINE DWORD HRESULT_TO_NMERR(HRESULT hResult) { return HRESULT_CODE(hResult); }
  1342. typedef HFILTER *LPHFILTER;
  1343. typedef DWORD FILTERACTIONTYPE;
  1344. typedef DWORD VALUETYPE;
  1345. #define PROTOCOL_NUM_ANY (-1)
  1346. typedef PROTOCOLTABLE PROTOCOLTABLETYPE;
  1347. typedef PROTOCOLTABLETYPE *LPPROTOCOLTABLETYPE;
  1348. typedef DWORD FILTERBITS;
  1349. typedef FILTERBITS *LPFILTERBITS;
  1350. typedef SYSTEMTIME *LPTIME;
  1351. typedef SYSTEMTIME UNALIGNED *ULPTIME;
  1352. typedef struct _FILTEROBJECT2 {
  1353. FILTERACTIONTYPE Action;
  1354. HPROPERTY hProperty;
  1355. __C89_NAMELESS union {
  1356. VALUETYPE Value;
  1357. HPROTOCOL hProtocol;
  1358. LPVOID lpArray;
  1359. LPPROTOCOLTABLETYPE lpProtocolTable;
  1360. LPADDRESS2 lpAddress;
  1361. ULPLARGEINT lpLargeInt;
  1362. ULPTIME lpTime;
  1363. LPOBJECT_IDENTIFIER lpOID;
  1364. };
  1365. __C89_NAMELESS union {
  1366. WORD ByteCount;
  1367. WORD ByteOffset;
  1368. };
  1369. struct _FILTEROBJECT2 *pNext;
  1370. } FILTEROBJECT2;
  1371. typedef FILTEROBJECT2 *LPFILTEROBJECT2;
  1372. #define FILTERINFO_SIZE (sizeof(FILTEROBJECT2))
  1373. typedef struct _FILTERDESC2 {
  1374. WORD NumEntries;
  1375. WORD Flags;
  1376. LPFILTEROBJECT2 lpStack;
  1377. LPFILTEROBJECT2 lpKeepLast;
  1378. LPVOID UIInstanceData;
  1379. LPFILTERBITS lpFilterBits;
  1380. LPFILTERBITS lpCheckBits;
  1381. } FILTERDESC2;
  1382. typedef FILTERDESC2 *LPFILTERDESC2;
  1383. #define FILTERDESC2_SIZE sizeof(FILTERDESC2)
  1384. typedef struct _FILTEROBJECT {
  1385. FILTERACTIONTYPE Action;
  1386. HPROPERTY hProperty;
  1387. __C89_NAMELESS union {
  1388. VALUETYPE Value;
  1389. HPROTOCOL hProtocol;
  1390. LPVOID lpArray;
  1391. LPPROTOCOLTABLETYPE lpProtocolTable;
  1392. LPADDRESS lpAddress;
  1393. ULPLARGEINT lpLargeInt;
  1394. ULPTIME lpTime;
  1395. LPOBJECT_IDENTIFIER lpOID;
  1396. };
  1397. __C89_NAMELESS union {
  1398. WORD ByteCount;
  1399. WORD ByteOffset;
  1400. };
  1401. struct _FILTEROBJECT *pNext;
  1402. } FILTEROBJECT;
  1403. typedef FILTEROBJECT *LPFILTEROBJECT;
  1404. typedef struct _FILTERDESC {
  1405. WORD NumEntries;
  1406. WORD Flags;
  1407. LPFILTEROBJECT lpStack;
  1408. LPFILTEROBJECT lpKeepLast;
  1409. LPVOID UIInstanceData;
  1410. LPFILTERBITS lpFilterBits;
  1411. LPFILTERBITS lpCheckBits;
  1412. } FILTERDESC;
  1413. typedef FILTERDESC *LPFILTERDESC;
  1414. #define FILTERDESC_SIZE sizeof(FILTERDESC)
  1415. #define FilterGetUIInstanceData(hfilt) (((LPFILTERDESC2)hfilt)->UIInstanceData)
  1416. #define FilterSetUIInstanceData(hfilt,inst) (((LPFILTERDESC2)hfilt)->UIInstanceData = (LPVOID)inst)
  1417. #define FILTERFREEPOOLSTART (20)
  1418. #define INVALIDELEMENT (-1)
  1419. #define INVALIDVALUE ((VALUETYPE)-9999)
  1420. #define FILTER_FAIL_WITH_ERROR (-1)
  1421. #define FILTER_PASSED (TRUE)
  1422. #define FILTER_FAILED (FALSE)
  1423. #define FILTERACTION_INVALID (0)
  1424. #define FILTERACTION_PROPERTY (1)
  1425. #define FILTERACTION_VALUE (2)
  1426. #define FILTERACTION_STRING (3)
  1427. #define FILTERACTION_ARRAY (4)
  1428. #define FILTERACTION_AND (5)
  1429. #define FILTERACTION_OR (6)
  1430. #define FILTERACTION_XOR (7)
  1431. #define FILTERACTION_PROPERTYEXIST (8)
  1432. #define FILTERACTION_CONTAINSNC (9)
  1433. #define FILTERACTION_CONTAINS (10)
  1434. #define FILTERACTION_NOT (11)
  1435. #define FILTERACTION_EQUALNC (12)
  1436. #define FILTERACTION_EQUAL (13)
  1437. #define FILTERACTION_NOTEQUALNC (14)
  1438. #define FILTERACTION_NOTEQUAL (15)
  1439. #define FILTERACTION_GREATERNC (16)
  1440. #define FILTERACTION_GREATER (17)
  1441. #define FILTERACTION_LESSNC (18)
  1442. #define FILTERACTION_LESS (19)
  1443. #define FILTERACTION_GREATEREQUALNC (20)
  1444. #define FILTERACTION_GREATEREQUAL (21)
  1445. #define FILTERACTION_LESSEQUALNC (22)
  1446. #define FILTERACTION_LESSEQUAL (23)
  1447. #define FILTERACTION_PLUS (24)
  1448. #define FILTERACTION_MINUS (25)
  1449. #define FILTERACTION_ADDRESS (26)
  1450. #define FILTERACTION_ADDRESSANY (27)
  1451. #define FILTERACTION_FROM (28)
  1452. #define FILTERACTION_TO (29)
  1453. #define FILTERACTION_FROMTO (30)
  1454. #define FILTERACTION_AREBITSON (31)
  1455. #define FILTERACTION_AREBITSOFF (32)
  1456. #define FILTERACTION_PROTOCOLSEXIST (33)
  1457. #define FILTERACTION_PROTOCOLEXIST (34)
  1458. #define FILTERACTION_ARRAYEQUAL (35)
  1459. #define FILTERACTION_DEREFPROPERTY (36)
  1460. #define FILTERACTION_LARGEINT (37)
  1461. #define FILTERACTION_TIME (38)
  1462. #define FILTERACTION_ADDR_ETHER (39)
  1463. #define FILTERACTION_ADDR_TOKEN (40)
  1464. #define FILTERACTION_ADDR_FDDI (41)
  1465. #define FILTERACTION_ADDR_IPX (42)
  1466. #define FILTERACTION_ADDR_IP (43)
  1467. #define FILTERACTION_OID (44)
  1468. #define FILTERACTION_OID_CONTAINS (45)
  1469. #define FILTERACTION_OID_BEGINS_WITH (46)
  1470. #define FILTERACTION_OID_ENDS_WITH (47)
  1471. #define FILTERACTION_ADDR_VINES (48)
  1472. #define FILTERACTION_ADDR_IP6 (49)
  1473. #define FILTERACTION_EXPRESSION (97)
  1474. #define FILTERACTION_BOOL (98)
  1475. #define FILTERACTION_NOEVAL (99)
  1476. #define FILTER_NO_MORE_FRAMES (0xffffffff)
  1477. #define FILTER_CANCELED (0xfffffffe)
  1478. #define FILTER_DIRECTION_NEXT (TRUE)
  1479. #define FILTER_DIRECTION_PREV (FALSE)
  1480. typedef WINBOOL (WINAPI *STATUSPROC)(DWORD,HCAPTURE,HFILTER,LPVOID);
  1481. HFILTER WINAPI CreateFilter(VOID);
  1482. DWORD WINAPI DestroyFilter(HFILTER hFilter);
  1483. HFILTER WINAPI FilterDuplicate(HFILTER hFilter);
  1484. DWORD WINAPI DisableParserFilter(HFILTER hFilter,HPARSER hParser);
  1485. DWORD WINAPI EnableParserFilter(HFILTER hFilter,HPARSER hParser);
  1486. DWORD WINAPI FilterAddObject(HFILTER hFilter,LPFILTEROBJECT2 lpFilterObject);
  1487. VOID WINAPI FilterFlushBits(HFILTER hFilter);
  1488. DWORD WINAPI FilterFrame(HFRAME hFrame,HFILTER hFilter,HCAPTURE hCapture);
  1489. WINBOOL WINAPI FilterAttachesProperties(HFILTER hFilter);
  1490. DWORD WINAPI FilterFindFrame (HFILTER hFilter,HCAPTURE hCapture,DWORD nFrame,STATUSPROC StatusProc,LPVOID UIInstance,DWORD TimeDelta,WINBOOL FilterDirection);
  1491. HFRAME FilterFindPropertyInstance (HFRAME hFrame,HFILTER hMasterFilter,HCAPTURE hCapture,HFILTER hInstanceFilter,LPPROPERTYINST *lpPropRestartKey,STATUSPROC StatusProc,LPVOID UIInstance,DWORD TimeDelta,WINBOOL FilterForward);
  1492. VOID WINAPI SetCurrentFilter(HFILTER);
  1493. HFILTER WINAPI GetCurrentFilter(VOID);
  1494. typedef struct _ETHERNET {
  1495. BYTE DstAddr[MAX_ADDR_LENGTH];
  1496. BYTE SrcAddr[MAX_ADDR_LENGTH];
  1497. __C89_NAMELESS union {
  1498. WORD Length;
  1499. WORD Type;
  1500. };
  1501. BYTE Info[0];
  1502. } ETHERNET;
  1503. typedef ETHERNET *LPETHERNET;
  1504. typedef ETHERNET UNALIGNED *ULPETHERNET;
  1505. #define ETHERNET_SIZE sizeof(ETHERNET)
  1506. #define ETHERNET_HEADER_LENGTH (14)
  1507. #define ETHERNET_DATA_LENGTH (0x5dc)
  1508. #define ETHERNET_FRAME_LENGTH (0x5ea)
  1509. #define ETHERNET_FRAME_TYPE (0x600)
  1510. typedef struct _NM_ATM {
  1511. UCHAR DstAddr[6];
  1512. UCHAR SrcAddr[6];
  1513. ULONG Vpi;
  1514. ULONG Vci;
  1515. } NM_ATM;
  1516. typedef NM_ATM *PNM_ATM;
  1517. typedef NM_ATM *UPNM_ATM;
  1518. #define NM_ATM_HEADER_LENGTH sizeof(NM_ATM)
  1519. #pragma pack(push,1)
  1520. typedef struct _NM_1394 {
  1521. UCHAR DstAddr[6];
  1522. UCHAR SrcAddr[6];
  1523. ULONGLONG VcId;
  1524. } NM_1394;
  1525. typedef NM_1394 *PNM_1394;
  1526. typedef NM_1394 *UPNM_1394;
  1527. #define NM_1394_HEADER_LENGTH sizeof(NM_1394)
  1528. typedef struct _TOKENRING {
  1529. BYTE AccessCtrl;
  1530. BYTE FrameCtrl;
  1531. BYTE DstAddr[MAX_ADDR_LENGTH];
  1532. BYTE SrcAddr[MAX_ADDR_LENGTH];
  1533. __C89_NAMELESS union {
  1534. BYTE Info[0];
  1535. WORD RoutingInfo[0];
  1536. };
  1537. } TOKENRING;
  1538. typedef TOKENRING *LPTOKENRING;
  1539. typedef TOKENRING UNALIGNED *ULPTOKENRING;
  1540. #define TOKENRING_SIZE sizeof(TOKENRING)
  1541. #define TOKENRING_HEADER_LENGTH (14)
  1542. #define TOKENRING_SA_ROUTING_INFO (0x80)
  1543. #define TOKENRING_SA_LOCAL (0x40)
  1544. #define TOKENRING_DA_LOCAL (0x40)
  1545. #define TOKENRING_DA_GROUP (0x80)
  1546. #define TOKENRING_RC_LENGTHMASK (0x1f)
  1547. #define TOKENRING_BC_MASK (0xe0)
  1548. #define TOKENRING_TYPE_MAC (0)
  1549. #define TOKENRING_TYPE_LLC (0x40)
  1550. #pragma pack(pop)
  1551. #pragma pack(push,1)
  1552. typedef struct _FDDI {
  1553. BYTE FrameCtrl;
  1554. BYTE DstAddr[MAX_ADDR_LENGTH];
  1555. BYTE SrcAddr[MAX_ADDR_LENGTH];
  1556. BYTE Info[0];
  1557. } FDDI;
  1558. #define FDDI_SIZE sizeof(FDDI)
  1559. typedef FDDI *LPFDDI;
  1560. typedef FDDI UNALIGNED *ULPFDDI;
  1561. #define FDDI_HEADER_LENGTH (13)
  1562. #define FDDI_TYPE_MAC (0)
  1563. #define FDDI_TYPE_LLC (0x10)
  1564. #define FDDI_TYPE_LONG_ADDRESS (0x40)
  1565. #pragma pack(pop)
  1566. #pragma pack(push,1)
  1567. typedef struct _LLC {
  1568. BYTE dsap;
  1569. BYTE ssap;
  1570. struct {
  1571. __C89_NAMELESS union {
  1572. BYTE Command;
  1573. BYTE NextSend;
  1574. };
  1575. __C89_NAMELESS union {
  1576. BYTE NextRecv;
  1577. BYTE Data[1];
  1578. };
  1579. } ControlField;
  1580. } LLC;
  1581. typedef LLC *LPLLC;
  1582. typedef LLC UNALIGNED *ULPLLC;
  1583. #define LLC_SIZE (sizeof(LLC))
  1584. #pragma pack(pop)
  1585. #define IsRoutingInfoPresent(f) ((((ULPTOKENRING) (f))->SrcAddr[0] & TOKENRING_SA_ROUTING_INFO) ? TRUE : FALSE)
  1586. #define GetRoutingInfoLength(f) (IsRoutingInfoPresent(f) ? (((ULPTOKENRING) (f))->RoutingInfo[0] & TOKENRING_RC_LENGTHMASK) : 0)
  1587. typedef VOID (WINAPIV *FORMAT)(LPPROPERTYINST,...);
  1588. #define PROTOCOL_STATUS_RECOGNIZED (0)
  1589. #define PROTOCOL_STATUS_NOT_RECOGNIZED (1)
  1590. #define PROTOCOL_STATUS_CLAIMED (2)
  1591. #define PROTOCOL_STATUS_NEXT_PROTOCOL (3)
  1592. extern BYTE HexTable[];
  1593. #define XCHG(x) MAKEWORD(HIBYTE(x),LOBYTE(x))
  1594. #define DXCHG(x) MAKELONG(XCHG(HIWORD(x)),XCHG(LOWORD(x)))
  1595. #define LONIBBLE(b) ((BYTE) ((b) & 0x0F))
  1596. #define HINIBBLE(b) ((BYTE) ((b) >> 4))
  1597. #define HEX(b) (HexTable[LONIBBLE(b)])
  1598. #define SWAPBYTES(w) ((w) = XCHG(w))
  1599. #define SWAPWORDS(d) ((d) = DXCHG(d))
  1600. typedef union _MACFRAME {
  1601. LPBYTE MacHeader;
  1602. LPETHERNET Ethernet;
  1603. LPTOKENRING Tokenring;
  1604. LPFDDI Fddi;
  1605. } MACFRAME;
  1606. typedef MACFRAME *LPMACFRAME;
  1607. #define HOT_SIGNATURE MAKE_IDENTIFIER('H','O','T','$')
  1608. #define HOE_SIGNATURE MAKE_IDENTIFIER('H','O','E','$')
  1609. typedef struct _HANDOFFENTRY {
  1610. DWORD hoe_sig;
  1611. DWORD hoe_ProtIdentNumber;
  1612. HPROTOCOL hoe_ProtocolHandle;
  1613. DWORD hoe_ProtocolData;
  1614. } HANDOFFENTRY;
  1615. typedef HANDOFFENTRY *LPHANDOFFENTRY;
  1616. typedef struct _HANDOFFTABLE {
  1617. DWORD hot_sig;
  1618. DWORD hot_NumEntries;
  1619. LPHANDOFFENTRY hot_Entries;
  1620. } HANDOFFTABLE;
  1621. typedef struct _HANDOFFTABLE *LPHANDOFFTABLE;
  1622. INLINE LPVOID GetPropertyInstanceData(LPPROPERTYINST PropertyInst) {
  1623. if(PropertyInst->DataLength!=(WORD) -1) return PropertyInst->lpData;
  1624. return (LPVOID) PropertyInst->lpPropertyInstEx->Byte;
  1625. }
  1626. #define GetPropertyInstanceDataValue(p,type) ((type *) GetPropertyInstanceData(p))[0]
  1627. INLINE DWORD GetPropertyInstanceFrameDataLength(LPPROPERTYINST PropertyInst) {
  1628. if(PropertyInst->DataLength!=(WORD) -1) return PropertyInst->DataLength;
  1629. return PropertyInst->lpPropertyInstEx->Length;
  1630. }
  1631. INLINE DWORD GetPropertyInstanceExDataLength(LPPROPERTYINST PropertyInst) {
  1632. if(PropertyInst->DataLength==(WORD) -1) {
  1633. PropertyInst->lpPropertyInstEx->Length;
  1634. }
  1635. return (WORD) -1;
  1636. }
  1637. LPLABELED_WORD WINAPI GetProtocolDescriptionTable(LPDWORD TableSize);
  1638. LPLABELED_WORD WINAPI GetProtocolDescription(DWORD ProtocolID);
  1639. DWORD WINAPI GetMacHeaderLength(LPVOID MacHeader,DWORD MacType);
  1640. DWORD WINAPI GetLLCHeaderLength(LPLLC Frame);
  1641. DWORD WINAPI GetEtype(LPVOID MacHeader,DWORD MacType);
  1642. DWORD WINAPI GetSaps(LPVOID MacHeader,DWORD MacType);
  1643. WINBOOL WINAPI IsLLCPresent(LPVOID MacHeader,DWORD MacType);
  1644. VOID WINAPI CanonicalizeHexString(LPSTR hex,LPSTR dest,DWORD len);
  1645. void WINAPI CanonHex(UCHAR *pDest,UCHAR *pSource,int iLen,WINBOOL fOx);
  1646. DWORD WINAPI ByteToBinary(LPSTR string,DWORD ByteValue);
  1647. DWORD WINAPI WordToBinary(LPSTR string,DWORD WordValue);
  1648. DWORD WINAPI DwordToBinary(LPSTR string,DWORD DwordValue);
  1649. LPSTR WINAPI AddressToString(LPSTR string,BYTE *lpAddress);
  1650. LPBYTE WINAPI StringToAddress(BYTE *lpAddress,LPSTR string);
  1651. LPDWORD WINAPI VarLenSmallIntToDword(LPBYTE pValue,WORD ValueLen,WINBOOL fIsByteswapped,LPDWORD lpDword);
  1652. LPBYTE WINAPI LookupByteSetString (LPSET lpSet,BYTE Value);
  1653. LPBYTE WINAPI LookupWordSetString (LPSET lpSet,WORD Value);
  1654. LPBYTE WINAPI LookupDwordSetString (LPSET lpSet,DWORD Value);
  1655. DWORD WINAPIV FormatByteFlags(LPSTR string,DWORD ByteValue,DWORD BitMask);
  1656. DWORD WINAPIV FormatWordFlags(LPSTR string,DWORD WordValue,DWORD BitMask);
  1657. DWORD WINAPIV FormatDwordFlags(LPSTR string,DWORD DwordValue,DWORD BitMask);
  1658. LPSTR WINAPIV FormatTimeAsString(SYSTEMTIME *time,LPSTR string);
  1659. VOID WINAPIV FormatLabeledByteSetAsFlags(LPPROPERTYINST lpPropertyInst);
  1660. VOID WINAPIV FormatLabeledWordSetAsFlags(LPPROPERTYINST lpPropertyInst);
  1661. VOID WINAPIV FormatLabeledDwordSetAsFlags(LPPROPERTYINST lpPropertyInst);
  1662. VOID WINAPIV FormatPropertyDataAsByte(LPPROPERTYINST lpPropertyInst,DWORD Base);
  1663. VOID WINAPIV FormatPropertyDataAsWord(LPPROPERTYINST lpPropertyInst,DWORD Base);
  1664. VOID WINAPIV FormatPropertyDataAsDword(LPPROPERTYINST lpPropertyInst,DWORD Base);
  1665. VOID WINAPIV FormatLabeledByteSet(LPPROPERTYINST lpPropertyInst);
  1666. VOID WINAPIV FormatLabeledWordSet(LPPROPERTYINST lpPropertyInst);
  1667. VOID WINAPIV FormatLabeledDwordSet(LPPROPERTYINST lpPropertyInst);
  1668. VOID WINAPIV FormatPropertyDataAsInt64(LPPROPERTYINST lpPropertyInst,DWORD Base);
  1669. VOID WINAPIV FormatPropertyDataAsTime(LPPROPERTYINST lpPropertyInst);
  1670. VOID WINAPIV FormatPropertyDataAsString(LPPROPERTYINST lpPropertyInst);
  1671. VOID WINAPIV FormatPropertyDataAsHexString(LPPROPERTYINST lpPropertyInst);
  1672. ULPBYTE WINAPI ParserTemporaryLockFrame(HFRAME hFrame);
  1673. LPVOID WINAPI GetCCInstPtr(VOID);
  1674. VOID WINAPI SetCCInstPtr(LPVOID lpCurCaptureInst);
  1675. LPVOID WINAPI CCHeapAlloc(DWORD dwBytes,WINBOOL bZeroInit);
  1676. LPVOID WINAPI CCHeapReAlloc(LPVOID lpMem,DWORD dwBytes,WINBOOL bZeroInit);
  1677. WINBOOL WINAPI CCHeapFree(LPVOID lpMem);
  1678. SIZE_T WINAPI CCHeapSize(LPVOID lpMem);
  1679. WINBOOL __cdecl BERGetInteger(ULPBYTE pCurrentPointer,ULPBYTE *ppValuePointer,LPDWORD pHeaderLength,LPDWORD pDataLength,ULPBYTE *ppNext);
  1680. WINBOOL __cdecl BERGetString(ULPBYTE pCurrentPointer,ULPBYTE *ppValuePointer,LPDWORD pHeaderLength,LPDWORD pDataLength,ULPBYTE *ppNext);
  1681. WINBOOL __cdecl BERGetHeader(ULPBYTE pCurrentPointer,ULPBYTE pTag,LPDWORD pHeaderLength,LPDWORD pDataLength,ULPBYTE *ppNext);
  1682. #define MAX_PROTOCOL_COMMENT_LEN (256)
  1683. #define NETMON_MAX_PROTOCOL_NAME_LEN (16)
  1684. #ifndef MAX_PROTOCOL_NAME_LEN
  1685. #define MAX_PROTOCOL_NAME_LEN (NETMON_MAX_PROTOCOL_NAME_LEN)
  1686. #else
  1687. #undef MAX_PROTOCOL_NAME_LEN
  1688. #endif
  1689. typedef enum __MIDL___MIDL_itf_netmon_0000_0015 {
  1690. HANDOFF_VALUE_FORMAT_BASE_UNKNOWN = 0,HANDOFF_VALUE_FORMAT_BASE_DECIMAL = 10,HANDOFF_VALUE_FORMAT_BASE_HEX = 16
  1691. } PF_HANDOFFVALUEFORMATBASE;
  1692. typedef struct _PF_HANDOFFENTRY {
  1693. char szIniFile[260];
  1694. char szIniSection[260];
  1695. char szProtocol[16];
  1696. DWORD dwHandOffValue;
  1697. PF_HANDOFFVALUEFORMATBASE ValueFormatBase;
  1698. } PF_HANDOFFENTRY;
  1699. typedef PF_HANDOFFENTRY *PPF_HANDOFFENTRY;
  1700. typedef struct _PF_HANDOFFSET {
  1701. DWORD nEntries;
  1702. PF_HANDOFFENTRY Entry[0];
  1703. } PF_HANDOFFSET;
  1704. typedef PF_HANDOFFSET *PPF_HANDOFFSET;
  1705. typedef struct _PF_FOLLOWENTRY {
  1706. char szProtocol[16];
  1707. } PF_FOLLOWENTRY;
  1708. typedef PF_FOLLOWENTRY *PPF_FOLLOWENTRY;
  1709. typedef struct _PF_FOLLOWSET {
  1710. DWORD nEntries;
  1711. PF_FOLLOWENTRY Entry[0];
  1712. } PF_FOLLOWSET;
  1713. typedef PF_FOLLOWSET *PPF_FOLLOWSET;
  1714. typedef struct _PF_PARSERINFO {
  1715. char szProtocolName[NETMON_MAX_PROTOCOL_NAME_LEN];
  1716. char szComment[MAX_PROTOCOL_COMMENT_LEN];
  1717. char szHelpFile[MAX_PATH];
  1718. PPF_FOLLOWSET pWhoCanPrecedeMe;
  1719. PPF_FOLLOWSET pWhoCanFollowMe;
  1720. PPF_HANDOFFSET pWhoHandsOffToMe;
  1721. PPF_HANDOFFSET pWhoDoIHandOffTo;
  1722. } PF_PARSERINFO;
  1723. typedef PF_PARSERINFO *PPF_PARSERINFO;
  1724. typedef struct _PF_PARSERDLLINFO {
  1725. DWORD nParsers;
  1726. PF_PARSERINFO ParserInfo[0];
  1727. } PF_PARSERDLLINFO;
  1728. typedef PF_PARSERDLLINFO *PPF_PARSERDLLINFO;
  1729. #define INI_PATH_LENGTH (256)
  1730. #define MAX_HANDOFF_ENTRY_LENGTH (80)
  1731. #define MAX_PROTOCOL_NAME (40)
  1732. #define NUMALLOCENTRIES (10)
  1733. #define RAW_INI_STR_LEN (200)
  1734. #define PARSERS_SUBDIR "PARSERS"
  1735. #define INI_EXTENSION "INI"
  1736. #define BASE10_FORMAT_STR "%ld=%s %ld"
  1737. #define BASE16_FORMAT_STR "%lx=%s %lx"
  1738. LPSTR __cdecl BuildINIPath(char *FullPath,char *IniFileName);
  1739. DWORD WINAPI CreateHandoffTable(LPSTR secName,LPSTR iniFile,LPHANDOFFTABLE *hTable,DWORD nMaxProtocolEntries,DWORD base);
  1740. HPROTOCOL WINAPI GetProtocolFromTable(LPHANDOFFTABLE hTable,DWORD ItemToFind,PDWORD_PTR lpInstData);
  1741. VOID WINAPI DestroyHandoffTable(LPHANDOFFTABLE hTable);
  1742. BOOLEAN WINAPI IsRawIPXEnabled(LPSTR secName,LPSTR iniFile,LPSTR CurProtocol);
  1743. #define EXPERTSTRINGLENGTH (260)
  1744. #define EXPERTGROUPNAMELENGTH (25)
  1745. typedef LPVOID HEXPERTKEY;
  1746. typedef HEXPERTKEY *PHEXPERTKEY;
  1747. typedef LPVOID HEXPERT;
  1748. typedef HEXPERT *PHEXPERT;
  1749. typedef LPVOID HRUNNINGEXPERT;
  1750. typedef HRUNNINGEXPERT *PHRUNNINGEXPERT;
  1751. typedef struct _EXPERTENUMINFO *PEXPERTENUMINFO;
  1752. typedef struct _EXPERTCONFIG *PEXPERTCONFIG;
  1753. typedef struct _EXPERTSTARTUPINFO *PEXPERTSTARTUPINFO;
  1754. #define EXPERTENTRY_REGISTER "Register"
  1755. #define EXPERTENTRY_CONFIGURE "Configure"
  1756. #define EXPERTENTRY_RUN "Run"
  1757. typedef WINBOOL (WINAPI *PEXPERTREGISTERPROC)(PEXPERTENUMINFO);
  1758. typedef WINBOOL (WINAPI *PEXPERTCONFIGPROC) (HEXPERTKEY,PEXPERTCONFIG*,PEXPERTSTARTUPINFO,DWORD,HWND);
  1759. typedef WINBOOL (WINAPI *PEXPERTRUNPROC) (HEXPERTKEY,PEXPERTCONFIG,PEXPERTSTARTUPINFO,DWORD,HWND);
  1760. typedef struct _EXPERTENUMINFO {
  1761. char szName[EXPERTSTRINGLENGTH];
  1762. char szVendor[EXPERTSTRINGLENGTH];
  1763. char szDescription[EXPERTSTRINGLENGTH];
  1764. DWORD Version;
  1765. DWORD Flags;
  1766. char szDllName[MAX_PATH];
  1767. HEXPERT hExpert;
  1768. HINSTANCE hModule;
  1769. PEXPERTREGISTERPROC pRegisterProc;
  1770. PEXPERTCONFIGPROC pConfigProc;
  1771. PEXPERTRUNPROC pRunProc;
  1772. } EXPERTENUMINFO;
  1773. typedef EXPERTENUMINFO *PEXPERTENUMINFO;
  1774. #define EXPERT_ENUM_FLAG_CONFIGURABLE (0x1)
  1775. #define EXPERT_ENUM_FLAG_VIEWER_PRIVATE (0x2)
  1776. #define EXPERT_ENUM_FLAG_NO_VIEWER (0x4)
  1777. #define EXPERT_ENUM_FLAG_ADD_ME_TO_RMC_IN_SUMMARY (0x10)
  1778. #define EXPERT_ENUM_FLAG_ADD_ME_TO_RMC_IN_DETAIL (0x20)
  1779. typedef struct _EXPERTSTARTUPINFO {
  1780. DWORD Flags;
  1781. HCAPTURE hCapture;
  1782. char szCaptureFile[MAX_PATH];
  1783. DWORD dwFrameNumber;
  1784. HPROTOCOL hProtocol;
  1785. LPPROPERTYINST lpPropertyInst;
  1786. struct {
  1787. BYTE BitNumber;
  1788. WINBOOL bOn;
  1789. } sBitfield;
  1790. } EXPERTSTARTUPINFO;
  1791. typedef struct _EXPERTCONFIG {
  1792. DWORD RawConfigLength;
  1793. BYTE RawConfigData[0];
  1794. } EXPERTCONFIG;
  1795. typedef EXPERTCONFIG *PEXPERTCONFIG;
  1796. typedef struct {
  1797. HEXPERT hExpert;
  1798. DWORD StartupFlags;
  1799. PEXPERTCONFIG pConfig;
  1800. } CONFIGUREDEXPERT;
  1801. typedef CONFIGUREDEXPERT *PCONFIGUREDEXPERT;
  1802. typedef struct {
  1803. DWORD FrameNumber;
  1804. HFRAME hFrame;
  1805. ULPFRAME pFrame;
  1806. LPRECOGNIZEDATATABLE lpRecognizeDataTable;
  1807. LPPROPERTYTABLE lpPropertyTable;
  1808. } EXPERTFRAMEDESCRIPTOR;
  1809. typedef EXPERTFRAMEDESCRIPTOR *LPEXPERTFRAMEDESCRIPTOR;
  1810. #define GET_SPECIFIED_FRAME (0)
  1811. #define GET_FRAME_NEXT_FORWARD (1)
  1812. #define GET_FRAME_NEXT_BACKWARD (2)
  1813. #define FLAGS_DEFER_TO_UI_FILTER (0x1)
  1814. #define FLAGS_ATTACH_PROPERTIES (0x2)
  1815. typedef enum __MIDL___MIDL_itf_netmon_0000_0016 {
  1816. EXPERTSTATUS_INACTIVE = 0,EXPERTSTATUS_STARTING,EXPERTSTATUS_RUNNING,
  1817. EXPERTSTATUS_PROBLEM,EXPERTSTATUS_ABORTED,EXPERTSTATUS_DONE
  1818. } EXPERTSTATUSENUMERATION;
  1819. #define EXPERTSUBSTATUS_ABORTED_USER (0x1)
  1820. #define EXPERTSUBSTATUS_ABORTED_LOAD_FAIL (0x2)
  1821. #define EXPERTSUBSTATUS_ABORTED_THREAD_FAIL (0x4)
  1822. #define EXPERTSUBSTATUS_ABORTED_BAD_ENTRY (0x8)
  1823. typedef struct __MIDL___MIDL_itf_netmon_0000_0017 {
  1824. EXPERTSTATUSENUMERATION Status;
  1825. DWORD SubStatus;
  1826. DWORD PercentDone;
  1827. DWORD Frame;
  1828. char szStatusText[260];
  1829. } EXPERTSTATUS;
  1830. typedef EXPERTSTATUS *PEXPERTSTATUS;
  1831. #define EXPERT_STARTUP_FLAG_USE_STARTUP_DATA_OVER_CONFIG_DATA (0x1)
  1832. #define INVALID_FRAME_NUMBER ((DWORD)-1)
  1833. #define CAPTUREFILE_OPEN OPEN_EXISTING
  1834. #define CAPTUREFILE_CREATE CREATE_NEW
  1835. LPSYSTEMTIME WINAPI GetCaptureTimeStamp(HCAPTURE hCapture);
  1836. DWORD WINAPI GetCaptureMacType(HCAPTURE hCapture);
  1837. DWORD WINAPI GetCaptureTotalFrames(HCAPTURE hCapture);
  1838. LPSTR WINAPI GetCaptureComment(HCAPTURE hCapture);
  1839. DWORD WINAPI MacTypeToAddressType(DWORD MacType);
  1840. DWORD WINAPI AddressTypeToMacType(DWORD AddressType);
  1841. DWORD WINAPI GetFrameDstAddressOffset(HFRAME hFrame,DWORD AddressType,LPDWORD AddressLength);
  1842. DWORD WINAPI GetFrameSrcAddressOffset(HFRAME hFrame,DWORD AddressType,LPDWORD AddressLength);
  1843. HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME hFrame);
  1844. DWORD WINAPI GetFrameDestAddress(HFRAME hFrame,LPADDRESS2 lpAddress,DWORD AddressType,DWORD Flags);
  1845. DWORD WINAPI GetFrameSourceAddress(HFRAME hFrame,LPADDRESS2 lpAddress,DWORD AddressType,DWORD Flags);
  1846. DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame);
  1847. WINBOOL WINAPI CompareFrameDestAddress(HFRAME hFrame,LPADDRESS2 lpAddress);
  1848. WINBOOL WINAPI CompareFrameSourceAddress(HFRAME hFrame,LPADDRESS2 lpAddress);
  1849. DWORD WINAPI GetFrameLength(HFRAME hFrame);
  1850. DWORD WINAPI GetFrameStoredLength(HFRAME hFrame);
  1851. DWORD WINAPI GetFrameMacType(HFRAME hFrame);
  1852. DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame);
  1853. DWORD WINAPI GetFrameNumber(HFRAME hFrame);
  1854. __MINGW_EXTENSION __int64 WINAPI GetFrameTimeStamp(HFRAME hFrame);
  1855. ULPFRAME WINAPI GetFrameFromFrameHandle(HFRAME hFrame);
  1856. __MINGW_EXTENSION HFRAME WINAPI ModifyFrame(HCAPTURE hCapture,DWORD FrameNumber,LPBYTE FrameData,DWORD FrameLength,__int64 TimeStamp);
  1857. HFRAME WINAPI FindNextFrame(HFRAME hCurrentFrame,LPSTR ProtocolName,LPADDRESS2 lpDestAddress,LPADDRESS2 lpSrcAddress,LPWORD ProtocolOffset,DWORD OriginalFrameNumber,DWORD nHighestFrame);
  1858. HFRAME WINAPI FindPreviousFrame(HFRAME hCurrentFrame,LPSTR ProtocolName,LPADDRESS2 lpDstAddress,LPADDRESS2 lpSrcAddress,LPWORD ProtocolOffset,DWORD OriginalFrameNumber,DWORD nLowestFrame);
  1859. HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME);
  1860. HFRAME WINAPI GetFrame(HCAPTURE hCapture,DWORD FrameNumber);
  1861. LPRECOGNIZEDATATABLE WINAPI GetFrameRecognizeData(HFRAME hFrame);
  1862. HPROTOCOL WINAPI CreateProtocol(LPSTR ProtocolName,LPENTRYPOINTS lpEntryPoints,DWORD cbEntryPoints);
  1863. VOID WINAPI DestroyProtocol(HPROTOCOL hProtocol);
  1864. LPPROTOCOLINFO WINAPI GetProtocolInfo(HPROTOCOL hProtocol);
  1865. HPROPERTY WINAPI GetProperty(HPROTOCOL hProtocol,LPSTR PropertyName);
  1866. HPROTOCOL WINAPI GetProtocolFromName(LPSTR ProtocolName);
  1867. DWORD WINAPI GetProtocolStartOffset(HFRAME hFrame,LPSTR ProtocolName);
  1868. DWORD WINAPI GetProtocolStartOffsetHandle(HFRAME hFrame,HPROTOCOL hProtocol);
  1869. DWORD WINAPI GetPreviousProtocolOffsetByName(HFRAME hFrame,DWORD dwStartOffset,LPSTR szProtocolName,DWORD *pdwPreviousOffset);
  1870. LPPROTOCOLTABLE WINAPI GetEnabledProtocols(HCAPTURE hCapture);
  1871. DWORD WINAPI CreatePropertyDatabase(HPROTOCOL hProtocol,DWORD nProperties);
  1872. DWORD WINAPI DestroyPropertyDatabase(HPROTOCOL hProtocol);
  1873. HPROPERTY WINAPI AddProperty(HPROTOCOL hProtocol,LPPROPERTYINFO PropertyInfo);
  1874. WINBOOL WINAPI AttachPropertyInstance(HFRAME hFrame,HPROPERTY hProperty,DWORD Length,ULPVOID lpData,DWORD HelpID,DWORD Level,DWORD IFlags);
  1875. WINBOOL WINAPI AttachPropertyInstanceEx(HFRAME hFrame,HPROPERTY hProperty,DWORD Length,ULPVOID lpData,DWORD ExLength,ULPVOID lpExData,DWORD HelpID,DWORD Level,DWORD IFlags);
  1876. LPPROPERTYINST WINAPI FindPropertyInstance(HFRAME hFrame,HPROPERTY hProperty);
  1877. LPPROPERTYINST WINAPI FindPropertyInstanceRestart (HFRAME hFrame,HPROPERTY hProperty,LPPROPERTYINST *lpRestartKey,WINBOOL DirForward);
  1878. LPPROPERTYINFO WINAPI GetPropertyInfo(HPROPERTY hProperty);
  1879. LPSTR WINAPI GetPropertyText(HFRAME hFrame,LPPROPERTYINST lpPI,LPSTR szBuffer,DWORD BufferSize);
  1880. DWORD WINAPI ResetPropertyInstanceLength(LPPROPERTYINST lpProp,WORD nOrgLen,WORD nNewLen);
  1881. DWORD WINAPI GetCaptureCommentFromFilename(LPSTR lpFilename,LPSTR lpComment,DWORD BufferSize);
  1882. int WINAPI CompareAddresses(LPADDRESS2 lpAddress1,LPADDRESS2 lpAddress2);
  1883. DWORD WINAPIV FormatPropertyInstance(LPPROPERTYINST lpPropertyInst,...);
  1884. __MINGW_EXTENSION SYSTEMTIME *WINAPI AdjustSystemTime(SYSTEMTIME *SystemTime,__int64 TimeDelta);
  1885. LPSTR WINAPI NMRtlIpv6AddressToStringA(const BYTE IP6Addr[],LPSTR S);
  1886. LPWSTR WINAPI NMRtlIpv6AddressToStringW(const BYTE IP6Addr[],LPWSTR S);
  1887. ULONG WINAPI NMRtlIpv6StringToAddressA(LPCSTR S,LPCSTR *Terminator,BYTE IP6Addr[]);
  1888. ULONG WINAPI NMRtlIpv6StringToAddressW(LPCWSTR S,LPCWSTR *Terminator,BYTE IP6Addr[]);
  1889. DWORD WINAPI ExpertGetFrame(HEXPERTKEY hExpertKey,DWORD Direction,DWORD RequestFlags,DWORD RequestedFrameNumber,HFILTER hFilter,LPEXPERTFRAMEDESCRIPTOR pEFrameDescriptor);
  1890. LPVOID WINAPI ExpertAllocMemory(HEXPERTKEY hExpertKey,SIZE_T nBytes,DWORD *pError);
  1891. LPVOID WINAPI ExpertReallocMemory(HEXPERTKEY hExpertKey,LPVOID pOriginalMemory,SIZE_T nBytes,DWORD *pError);
  1892. DWORD WINAPI ExpertFreeMemory(HEXPERTKEY hExpertKey,LPVOID pOriginalMemory);
  1893. SIZE_T WINAPI ExpertMemorySize(HEXPERTKEY hExpertKey,LPVOID pOriginalMemory);
  1894. DWORD WINAPI ExpertIndicateStatus(HEXPERTKEY hExpertKey,EXPERTSTATUSENUMERATION Status,DWORD SubStatus,const char *szText,LONG PercentDone);
  1895. DWORD WINAPI ExpertSubmitEvent(HEXPERTKEY hExpertKey,PNMEVENTDATA pExpertEvent);
  1896. DWORD WINAPI ExpertGetStartupInfo(HEXPERTKEY hExpertKey,PEXPERTSTARTUPINFO pExpertStartupInfo);
  1897. #define INITIAL_RESTART_KEY (0xffffffff)
  1898. DWORD __cdecl CreateBlob(HBLOB *phBlob);
  1899. DWORD __cdecl DestroyBlob(HBLOB hBlob);
  1900. DWORD __cdecl SetStringInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const char *pString);
  1901. DWORD __cdecl SetWStringInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const WCHAR *pwString);
  1902. DWORD __cdecl ConvertWStringToHexString(const WCHAR *pwsz,char **ppsz);
  1903. DWORD __cdecl GetStringFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const char **ppString);
  1904. DWORD __cdecl ConvertHexStringToWString(CHAR *psz,WCHAR **ppwsz);
  1905. DWORD __cdecl GetWStringFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,WCHAR **ppwString);
  1906. DWORD __cdecl GetStringsFromBlob(HBLOB hBlob,const char *pRequestedOwnerName,const char *pRequestedCategoryName,const char *pRequestedTagName,const char **ppReturnedOwnerName,const char **ppReturnedCategoryName,const char **ppReturnedTagName,const char **ppReturnedString,DWORD *pRestartKey);
  1907. DWORD __cdecl RemoveFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName);
  1908. DWORD __cdecl LockBlob(HBLOB hBlob);
  1909. DWORD __cdecl UnlockBlob(HBLOB hBlob);
  1910. DWORD __cdecl FindUnknownBlobCategories(HBLOB hBlob,const char *pOwnerName,const char *pKnownCategoriesTable[],HBLOB hUnknownCategoriesBlob);
  1911. DWORD __cdecl MergeBlob(HBLOB hDstBlob,HBLOB hSrcBlob);
  1912. DWORD __cdecl DuplicateBlob (HBLOB hSrcBlob,HBLOB *hBlobThatWillBeCreated);
  1913. DWORD __cdecl WriteBlobToFile(HBLOB hBlob,const char *pFileName);
  1914. DWORD __cdecl ReadBlobFromFile(HBLOB *phBlob,const char *pFileName);
  1915. DWORD __cdecl RegCreateBlobKey(HKEY hkey,const char *szBlobName,HBLOB hBlob);
  1916. DWORD __cdecl RegOpenBlobKey(HKEY hkey,const char *szBlobName,HBLOB *phBlob);
  1917. DWORD __cdecl MarshalBlob(HBLOB hBlob,DWORD *pSize,BYTE **ppBytes);
  1918. DWORD __cdecl UnMarshalBlob(HBLOB *phBlob,DWORD Size,BYTE *pBytes);
  1919. DWORD __cdecl SetDwordInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,DWORD Dword);
  1920. DWORD __cdecl GetDwordFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,DWORD *pDword);
  1921. DWORD __cdecl SetBoolInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,WINBOOL Bool);
  1922. DWORD __cdecl GetBoolFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,WINBOOL *pBool);
  1923. DWORD __cdecl GetMacAddressFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,BYTE *pMacAddress);
  1924. DWORD __cdecl SetMacAddressInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const BYTE *pMacAddress);
  1925. DWORD __cdecl FindUnknownBlobTags(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pKnownTagsTable[],HBLOB hUnknownTagsBlob);
  1926. DWORD __cdecl SetNetworkInfoInBlob(HBLOB hBlob,LPNETWORKINFO lpNetworkInfo);
  1927. DWORD __cdecl GetNetworkInfoFromBlob(HBLOB hBlob,LPNETWORKINFO lpNetworkInfo);
  1928. DWORD __cdecl CreateNPPInterface (HBLOB hBlob,REFIID iid,void **ppvObject);
  1929. DWORD __cdecl SetClassIDInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const CLSID *pClsID);
  1930. DWORD __cdecl GetClassIDFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,CLSID *pClsID);
  1931. DWORD __cdecl SetNPPPatternFilterInBlob(HBLOB hBlob,LPEXPRESSION pExpression,HBLOB hErrorBlob);
  1932. DWORD __cdecl GetNPPPatternFilterFromBlob(HBLOB hBlob,LPEXPRESSION pExpression,HBLOB hErrorBlob);
  1933. DWORD __cdecl SetNPPAddress2FilterInBlob(HBLOB hBlob,LPADDRESSTABLE2 pAddressTable);
  1934. DWORD __cdecl GetNPPAddress2FilterFromBlob(HBLOB hBlob,LPADDRESSTABLE2 pAddressTable,HBLOB hErrorBlob);
  1935. DWORD __cdecl SetNPPTriggerInBlob(HBLOB hBlob,LPTRIGGER pTrigger,HBLOB hErrorBlob);
  1936. DWORD __cdecl GetNPPTriggerFromBlob(HBLOB hBlob,LPTRIGGER pTrigger,HBLOB hErrorBlob);
  1937. DWORD __cdecl SetNPPEtypeSapFilter(HBLOB hBlob,WORD nSaps,WORD nEtypes,LPBYTE lpSapTable,LPWORD lpEtypeTable,DWORD FilterFlags,HBLOB hErrorBlob);
  1938. DWORD __cdecl GetNPPEtypeSapFilter(HBLOB hBlob,WORD *pnSaps,WORD *pnEtypes,LPBYTE *ppSapTable,LPWORD *ppEtypeTable,DWORD *pFilterFlags,HBLOB hErrorBlob);
  1939. DWORD __cdecl GetNPPMacTypeAsNumber(HBLOB hBlob,LPDWORD lpMacType);
  1940. WINBOOL __cdecl IsRemoteNPP (HBLOB hBLOB);
  1941. #define OWNER_NPP "NPP"
  1942. #define CATEGORY_NETWORKINFO "NetworkInfo"
  1943. #define TAG_MACTYPE "MacType"
  1944. #define TAG_CURRENTADDRESS "CurrentAddress"
  1945. #define TAG_LINKSPEED "LinkSpeed"
  1946. #define TAG_MAXFRAMESIZE "MaxFrameSize"
  1947. #define TAG_FLAGS "Flags"
  1948. #define TAG_TIMESTAMPSCALEFACTOR "TimeStampScaleFactor"
  1949. #define TAG_COMMENT "Comment"
  1950. #define TAG_NODENAME "NodeName"
  1951. #define TAG_NAME "Name"
  1952. #define TAG_FAKENPP "Fake"
  1953. #define TAG_PROMISCUOUS_MODE "PMode"
  1954. #define CATEGORY_LOCATION "Location"
  1955. #define TAG_RAS "Dial-up Connection"
  1956. #define TAG_MACADDRESS "MacAddress"
  1957. #define TAG_CLASSID "ClassID"
  1958. #define TAG_NAME "Name"
  1959. #define TAG_CONNECTIONNAME "Connection Name"
  1960. #define TAG_FRIENDLYNAME "Friendly Name"
  1961. #define CATEGORY_CONFIG "Config"
  1962. #define TAG_FRAME_SIZE "FrameSize"
  1963. #define TAG_UPDATE_FREQUENCY "UpdateFreq"
  1964. #define TAG_BUFFER_SIZE "BufferSize"
  1965. #define TAG_PATTERN_DESIGNATOR "PatternMatch"
  1966. #define TAG_PATTERN "Pattern"
  1967. #define TAG_ADDRESS_PAIR "AddressPair"
  1968. #define TAG_CONNECTIONFLAGS "ConnectionFlags"
  1969. #define TAG_ETYPES "Etypes"
  1970. #define TAG_SAPS "Saps"
  1971. #define TAG_NO_CONVERSATION_STATS "NoConversationStats"
  1972. #define TAG_NO_STATS_FRAME "NoStatsFrame"
  1973. #define TAG_DONT_DELETE_EMPTY_CAPTURE "DontDeleteEmptyCapture"
  1974. #define TAG_WANT_PROTOCOL_INFO "WantProtocolInfo"
  1975. #define TAG_INTERFACE_DELAYED_CAPTURE "IDdC"
  1976. #define TAG_INTERFACE_REALTIME_CAPTURE "IRTC"
  1977. #define TAG_INTERFACE_STATS "ISts"
  1978. #define TAG_INTERFACE_TRANSMIT "IXmt"
  1979. #define TAG_LOCAL_ONLY "LocalOnly"
  1980. #define TAG_IS_REMOTE "IsRemote"
  1981. #define CATEGORY_TRIGGER "Trigger"
  1982. #define TAG_TRIGGER "Trigger"
  1983. #define CATEGORY_FINDER "Finder"
  1984. #define TAG_ROOT "Root"
  1985. #define TAG_PROCNAME "ProcName"
  1986. #define TAG_DISP_STRING "Display"
  1987. #define TAG_DLL_FILENAME "DLLName"
  1988. #define TAG_GET_SPECIAL_BLOBS "Specials"
  1989. #define CATEGORY_REMOTE "Remote"
  1990. #define TAG_REMOTECOMPUTER "RemoteComputer"
  1991. #define TAG_REMOTECLASSID "ClassID"
  1992. #define PROTOCOL_STRING_ETHERNET_TXT "ETHERNET"
  1993. #define PROTOCOL_STRING_TOKENRING_TXT "TOKENRING"
  1994. #define PROTOCOL_STRING_FDDI_TXT "FDDI"
  1995. #define PROTOCOL_STRING_ATM_TXT "ATM"
  1996. #define PROTOCOL_STRING_1394_TXT "IP/1394"
  1997. #define PROTOCOL_STRING_IP_TXT "IP"
  1998. #define PROTOCOL_STRING_IP6_TXT "IP6"
  1999. #define PROTOCOL_STRING_IPX_TXT "IPX"
  2000. #define PROTOCOL_STRING_XNS_TXT "XNS"
  2001. #define PROTOCOL_STRING_VINES_IP_TXT "VINES IP"
  2002. #define PROTOCOL_STRING_ICMP_TXT "ICMP"
  2003. #define PROTOCOL_STRING_TCP_TXT "TCP"
  2004. #define PROTOCOL_STRING_UDP_TXT "UDP"
  2005. #define PROTOCOL_STRING_SPX_TXT "SPX"
  2006. #define PROTOCOL_STRING_NCP_TXT "NCP"
  2007. #define PROTOCOL_STRING_ANY_TXT "ANY"
  2008. #define PROTOCOL_STRING_ANY_GROUP_TXT "ANY GROUP"
  2009. #define PROTOCOL_STRING_HIGHEST_TXT "HIGHEST"
  2010. #define PROTOCOL_STRING_LOCAL_ONLY_TXT "LOCAL ONLY"
  2011. #define PROTOCOL_STRING_UNKNOWN_TXT "UNKNOWN"
  2012. #define PROTOCOL_STRING_DATA_TXT "DATA"
  2013. #define PROTOCOL_STRING_FRAME_TXT "FRAME"
  2014. #define PROTOCOL_STRING_NONE_TXT "NONE"
  2015. #define PROTOCOL_STRING_EFFECTIVE_TXT "EFFECTIVE"
  2016. #define ADDRESS_PAIR_INCLUDE_TXT "INCLUDE"
  2017. #define ADDRESS_PAIR_EXCLUDE_TXT "EXCLUDE"
  2018. #define INCLUDE_ALL_EXCEPT_TXT "INCLUDE ALL EXCEPT"
  2019. #define EXCLUDE_ALL_EXCEPT_TXT "EXCLUDE ALL EXCEPT"
  2020. #define PATTERN_MATCH_OR_TXT "OR("
  2021. #define PATTERN_MATCH_AND_TXT "AND("
  2022. #define TRIGGER_PATTERN_TXT "PATTERN MATCH"
  2023. #define TRIGGER_BUFFER_TXT "BUFFER CONTENT"
  2024. #define TRIGGER_NOTIFY_TXT "NOTIFY"
  2025. #define TRIGGER_STOP_TXT "STOP"
  2026. #define TRIGGER_PAUSE_TXT "PAUSE"
  2027. #define TRIGGER_25_PERCENT_TXT "25 PERCENT"
  2028. #define TRIGGER_50_PERCENT_TXT "50 PERCENT"
  2029. #define TRIGGER_75_PERCENT_TXT "75 PERCENT"
  2030. #define TRIGGER_100_PERCENT_TXT "100 PERCENT"
  2031. #define PATTERN_MATCH_NOT_TXT "NOT"
  2032. LPCSTR __cdecl FindOneOf(LPCSTR p1,LPCSTR p2);
  2033. LONG __cdecl recursiveDeleteKey(HKEY hKeyParent,const char *lpszKeyChild);
  2034. WINBOOL __cdecl SubkeyExists(const char *pszPath,const char *szSubkey);
  2035. WINBOOL __cdecl setKeyAndValue(const char *szKey,const char *szSubkey,const char *szValue,const char *szName);
  2036. #pragma pack(push,1)
  2037. typedef struct _IP {
  2038. __C89_NAMELESS union {
  2039. BYTE Version;
  2040. BYTE HdrLen;
  2041. };
  2042. BYTE ServiceType;
  2043. WORD TotalLen;
  2044. WORD ID;
  2045. __C89_NAMELESS union {
  2046. WORD Flags;
  2047. WORD FragOff;
  2048. };
  2049. BYTE TimeToLive;
  2050. BYTE Protocol;
  2051. WORD HdrChksum;
  2052. DWORD SrcAddr;
  2053. DWORD DstAddr;
  2054. BYTE Options[0];
  2055. } IP;
  2056. typedef IP *LPIP;
  2057. typedef IP UNALIGNED *ULPIP;
  2058. typedef struct _PSUHDR {
  2059. DWORD ph_SrcIP;
  2060. DWORD ph_DstIP;
  2061. UCHAR ph_Zero;
  2062. UCHAR ph_Proto;
  2063. WORD ph_ProtLen;
  2064. } PSUHDR;
  2065. typedef PSUHDR UNALIGNED *LPPSUHDR;
  2066. #define IP_VERSION_MASK ((BYTE) 0xf0)
  2067. #define IP_VERSION_SHIFT (4)
  2068. #define IP_HDRLEN_MASK ((BYTE) 0x0f)
  2069. #define IP_HDRLEN_SHIFT (0)
  2070. #define IP_PRECEDENCE_MASK ((BYTE) 0xE0)
  2071. #define IP_PRECEDENCE_SHIFT (5)
  2072. #define IP_TOS_MASK ((BYTE) 0x1E)
  2073. #define IP_TOS_SHIFT (1)
  2074. #define IP_DELAY_MASK ((BYTE) 0x10)
  2075. #define IP_THROUGHPUT_MASK ((BYTE) 0x08)
  2076. #define IP_RELIABILITY_MASK ((BYTE) 0x04)
  2077. #define IP_FLAGS_MASK ((BYTE) 0xE0)
  2078. #define IP_FLAGS_SHIFT (13)
  2079. #define IP_DF_MASK ((BYTE) 0x40)
  2080. #define IP_MF_MASK ((BYTE) 0x20)
  2081. #define IP_MF_SHIFT (5)
  2082. #define IP_FRAGOFF_MASK ((WORD) 0x1FFF)
  2083. #define IP_FRAGOFF_SHIFT (3)
  2084. #define IP_TCC_MASK ((DWORD) 0xFFFFFF00)
  2085. #define IP_TIME_OPTS_MASK ((BYTE) 0x0F)
  2086. #define IP_MISS_STNS_MASK ((BYTE) 0xF0)
  2087. #define IP_TIME_OPTS_SHIFT (0)
  2088. #define IP_MISS_STNS_SHIFT (4)
  2089. #define IP_CHKSUM_OFF 10
  2090. #ifndef __CRT__NO_INLINE
  2091. INLINE BYTE IP_Version(ULPIP pIP) { return (pIP->Version & IP_VERSION_MASK) >> IP_VERSION_SHIFT; }
  2092. INLINE DWORD IP_HdrLen(ULPIP pIP) { return ((pIP->HdrLen & IP_HDRLEN_MASK) >> IP_HDRLEN_SHIFT) << 2; }
  2093. INLINE WORD IP_FragOff(ULPIP pIP) { return (XCHG(pIP->FragOff) & IP_FRAGOFF_MASK) << IP_FRAGOFF_SHIFT; }
  2094. INLINE DWORD IP_TotalLen(ULPIP pIP) { return XCHG(pIP->TotalLen); }
  2095. INLINE DWORD IP_MoreFragments(ULPIP pIP) { return (pIP->Flags & IP_MF_MASK) >> IP_MF_SHIFT; }
  2096. #endif
  2097. #define PORT_TCPMUX 1
  2098. #define PORT_RJE 5
  2099. #define PORT_ECHO 7
  2100. #define PORT_DISCARD 9
  2101. #define PORT_USERS 11
  2102. #define PORT_DAYTIME 13
  2103. #define PORT_NETSTAT 15
  2104. #define PORT_QUOTE 17
  2105. #define PORT_CHARGEN 19
  2106. #define PORT_FTPDATA 20
  2107. #define PORT_FTP 21
  2108. #define PORT_TELNET 23
  2109. #define PORT_SMTP 25
  2110. #define PORT_NSWFE 27
  2111. #define PORT_MSGICP 29
  2112. #define PORT_MSGAUTH 31
  2113. #define PORT_DSP 33
  2114. #define PORT_PRTSERVER 35
  2115. #define PORT_TIME 37
  2116. #define PORT_RLP 39
  2117. #define PORT_GRAPHICS 41
  2118. #define PORT_NAMESERVER 42
  2119. #define PORT_NICNAME 43
  2120. #define PORT_MPMFLAGS 44
  2121. #define PORT_MPM 45
  2122. #define PORT_MPMSND 46
  2123. #define PORT_NIFTP 47
  2124. #define PORT_LOGIN 49
  2125. #define PORT_LAMAINT 51
  2126. #define PORT_DOMAIN 53
  2127. #define PORT_ISIGL 55
  2128. #define PORT_ANYTERMACC 57
  2129. #define PORT_ANYFILESYS 59
  2130. #define PORT_NIMAIL 61
  2131. #define PORT_VIAFTP 63
  2132. #define PORT_TACACSDS 65
  2133. #define PORT_BOOTPS 67
  2134. #define PORT_BOOTPC 68
  2135. #define PORT_TFTP 69
  2136. #define PORT_NETRJS1 71
  2137. #define PORT_NETRJS2 72
  2138. #define PORT_NETRJS3 73
  2139. #define PORT_NETRJS4 74
  2140. #define PORT_ANYDIALOUT 75
  2141. #define PORT_ANYRJE 77
  2142. #define PORT_FINGER 79
  2143. #define PORT_HTTP 80
  2144. #define PORT_HOSTS2NS 81
  2145. #define PORT_MITMLDEV1 83
  2146. #define PORT_MITMLDEV2 85
  2147. #define PORT_ANYTERMLINK 87
  2148. #define PORT_SUMITTG 89
  2149. #define PORT_MITDOV 91
  2150. #define PORT_DCP 93
  2151. #define PORT_SUPDUP 95
  2152. #define PORT_SWIFTRVF 97
  2153. #define PORT_TACNEWS 98
  2154. #define PORT_METAGRAM 99
  2155. #define PORT_NEWACCT 100
  2156. #define PORT_HOSTNAME 101
  2157. #define PORT_ISOTSAP 102
  2158. #define PORT_X400 103
  2159. #define PORT_X400SND 104
  2160. #define PORT_CSNETNS 105
  2161. #define PORT_RTELNET 107
  2162. #define PORT_POP2 109
  2163. #define PORT_POP3 110
  2164. #define PORT_SUNRPC 111
  2165. #define PORT_AUTH 113
  2166. #define PORT_SFTP 115
  2167. #define PORT_UUCPPATH 117
  2168. #define PORT_NNTP 119
  2169. #define PORT_ERPC 121
  2170. #define PORT_NTP 123
  2171. #define PORT_LOCUSMAP 125
  2172. #define PORT_LOCUSCON 127
  2173. #define PORT_PWDGEN 129
  2174. #define PORT_CISCOFNA 130
  2175. #define PORT_CISCOTNA 131
  2176. #define PORT_CISCOSYS 132
  2177. #define PORT_STATSRV 133
  2178. #define PORT_INGRESNET 134
  2179. #define PORT_LOCSRV 135
  2180. #define PORT_PROFILE 136
  2181. #define PORT_NETBIOSNS 137
  2182. #define PORT_NETBIOSDGM 138
  2183. #define PORT_NETBIOSSSN 139
  2184. #define PORT_EMFISDATA 140
  2185. #define PORT_EMFISCNTL 141
  2186. #define PORT_BLIDM 142
  2187. #define PORT_IMAP2 143
  2188. #define PORT_NEWS 144
  2189. #define PORT_UAAC 145
  2190. #define PORT_ISOTP0 146
  2191. #define PORT_ISOIP 147
  2192. #define PORT_CRONUS 148
  2193. #define PORT_AED512 149
  2194. #define PORT_SQLNET 150
  2195. #define PORT_HEMS 151
  2196. #define PORT_BFTP 152
  2197. #define PORT_SGMP 153
  2198. #define PORT_NETSCPROD 154
  2199. #define PORT_NETSCDEV 155
  2200. #define PORT_SQLSRV 156
  2201. #define PORT_KNETCMP 157
  2202. #define PORT_PCMAILSRV 158
  2203. #define PORT_NSSROUTING 159
  2204. #define PORT_SGMPTRAPS 160
  2205. #define PORT_SNMP 161
  2206. #define PORT_SNMPTRAP 162
  2207. #define PORT_CMIPMANAGE 163
  2208. #define PORT_CMIPAGENT 164
  2209. #define PORT_XNSCOURIER 165
  2210. #define PORT_SNET 166
  2211. #define PORT_NAMP 167
  2212. #define PORT_RSVD 168
  2213. #define PORT_SEND 169
  2214. #define PORT_PRINTSRV 170
  2215. #define PORT_MULTIPLEX 171
  2216. #define PORT_CL1 172
  2217. #define PORT_XYPLEXMUX 173
  2218. #define PORT_MAILQ 174
  2219. #define PORT_VMNET 175
  2220. #define PORT_GENRADMUX 176
  2221. #define PORT_XDMCP 177
  2222. #define PORT_NEXTSTEP 178
  2223. #define PORT_BGP 179
  2224. #define PORT_RIS 180
  2225. #define PORT_UNIFY 181
  2226. #define PORT_UNISYSCAM 182
  2227. #define PORT_OCBINDER 183
  2228. #define PORT_OCSERVER 184
  2229. #define PORT_REMOTEKIS 185
  2230. #define PORT_KIS 186
  2231. #define PORT_ACI 187
  2232. #define PORT_MUMPS 188
  2233. #define PORT_QFT 189
  2234. #define PORT_GACP 190
  2235. #define PORT_PROSPERO 191
  2236. #define PORT_OSUNMS 192
  2237. #define PORT_SRMP 193
  2238. #define PORT_IRC 194
  2239. #define PORT_DN6NLMAUD 195
  2240. #define PORT_DN6SMMRED 196
  2241. #define PORT_DLS 197
  2242. #define PORT_DLSMON 198
  2243. #define PORT_ATRMTP 201
  2244. #define PORT_ATNBP 202
  2245. #define PORT_AT3 203
  2246. #define PORT_ATECHO 204
  2247. #define PORT_AT5 205
  2248. #define PORT_ATZIS 206
  2249. #define PORT_AT7 207
  2250. #define PORT_AT8 208
  2251. #define PORT_SURMEAS 243
  2252. #define PORT_LINK 245
  2253. #define PORT_DSP3270 246
  2254. #define PORT_LDAP1 389
  2255. #define PORT_ISAKMP 500
  2256. #define PORT_REXEC 512
  2257. #define PORT_RLOGIN 513
  2258. #define PORT_RSH 514
  2259. #define PORT_LPD 515
  2260. #define PORT_RIP 520
  2261. #define PORT_TEMPO 526
  2262. #define PORT_COURIER 530
  2263. #define PORT_NETNEWS 532
  2264. #define PORT_UUCPD 540
  2265. #define PORT_KLOGIN 543
  2266. #define PORT_KSHELL 544
  2267. #define PORT_DSF 555
  2268. #define PORT_REMOTEEFS 556
  2269. #define PORT_CHSHELL 562
  2270. #define PORT_METER 570
  2271. #define PORT_PCSERVER 600
  2272. #define PORT_NQS 607
  2273. #define PORT_HMMP_INDICATION 612
  2274. #define PORT_HMMP_OPERATION 613
  2275. #define PORT_MDQS 666
  2276. #define PORT_LPD721 721
  2277. #define PORT_LPD722 722
  2278. #define PORT_LPD723 723
  2279. #define PORT_LPD724 724
  2280. #define PORT_LPD725 725
  2281. #define PORT_LPD726 726
  2282. #define PORT_LPD727 727
  2283. #define PORT_LPD728 728
  2284. #define PORT_LPD729 729
  2285. #define PORT_LPD730 730
  2286. #define PORT_LPD731 731
  2287. #define PORT_RFILE 750
  2288. #define PORT_PUMP 751
  2289. #define PORT_QRH 752
  2290. #define PORT_RRH 753
  2291. #define PORT_TELL 754
  2292. #define PORT_NLOGIN 758
  2293. #define PORT_CON 759
  2294. #define PORT_NS 760
  2295. #define PORT_RXE 761
  2296. #define PORT_QUOTAD 762
  2297. #define PORT_CYCLESERV 763
  2298. #define PORT_OMSERV 764
  2299. #define PORT_WEBSTER 765
  2300. #define PORT_PHONEBOOK 767
  2301. #define PORT_VID 769
  2302. #define PORT_RTIP 771
  2303. #define PORT_CYCLESERV2 772
  2304. #define PORT_SUBMIT 773
  2305. #define PORT_RPASSWD 774
  2306. #define PORT_ENTOMB 775
  2307. #define PORT_WPAGES 776
  2308. #define PORT_WPGS 780
  2309. #define PORT_MDBSDAEMON 800
  2310. #define PORT_DEVICE 801
  2311. #define PORT_MAITRD 997
  2312. #define PORT_BUSBOY 998
  2313. #define PORT_GARCON 999
  2314. #define PORT_NFS 2049
  2315. #define PORT_LDAP2 3268
  2316. #define PORT_PPTP 5678
  2317. typedef struct _RequestReplyFields {
  2318. WORD ID;
  2319. WORD SeqNo;
  2320. } ReqReply;
  2321. typedef struct _ParameterProblemFields {
  2322. BYTE Pointer;
  2323. BYTE junk[3];
  2324. } ParmProb;
  2325. typedef struct _TimestampFields {
  2326. DWORD tsOrig;
  2327. DWORD tsRecv;
  2328. DWORD tsXmit;
  2329. } TS;
  2330. typedef struct _RouterAnnounceHeaderFields {
  2331. BYTE NumAddrs;
  2332. BYTE AddrEntrySize;
  2333. WORD Lifetime;
  2334. } RouterAH;
  2335. typedef struct _RouterAnnounceEntry {
  2336. DWORD Address;
  2337. DWORD PreferenceLevel;
  2338. } RouterAE;
  2339. typedef struct _ICMP {
  2340. BYTE Type;
  2341. BYTE Code;
  2342. WORD Checksum;
  2343. __C89_NAMELESS union {
  2344. DWORD Unused;
  2345. DWORD Address;
  2346. ReqReply RR;
  2347. ParmProb PP;
  2348. RouterAH RAH;
  2349. };
  2350. __C89_NAMELESS union {
  2351. TS Time;
  2352. IP IP;
  2353. RouterAE RAE[0];
  2354. };
  2355. } ICMP;
  2356. typedef ICMP *LPICMP;
  2357. typedef ICMP UNALIGNED *ULPICMP;
  2358. #define ICMP_HEADER_LENGTH (8)
  2359. #define ICMP_IP_DATA_LENGTH (8)
  2360. #define ECHO_REPLY (0)
  2361. #define DESTINATION_UNREACHABLE (3)
  2362. #define SOURCE_QUENCH (4)
  2363. #define REDIRECT (5)
  2364. #define ECHO (8)
  2365. #define ROUTER_ADVERTISEMENT (9)
  2366. #define ROUTER_SOLICITATION (10)
  2367. #define TIME_EXCEEDED (11)
  2368. #define PARAMETER_PROBLEM (12)
  2369. #define TIMESTAMP (13)
  2370. #define TIMESTAMP_REPLY (14)
  2371. #define INFORMATION_REQUEST (15)
  2372. #define INFORMATION_REPLY (16)
  2373. #define ADDRESS_MASK_REQUEST (17)
  2374. #define ADDRESS_MASK_REPLY (18)
  2375. typedef struct __MIDL___MIDL_itf_netmon_0000_0018 {
  2376. UCHAR ha_address[6];
  2377. } HOST_ADDRESS;
  2378. typedef struct _IPXADDRESS {
  2379. ULONG ipx_NetNumber;
  2380. HOST_ADDRESS ipx_HostAddr;
  2381. } IPXADDRESS;
  2382. typedef IPXADDRESS UNALIGNED *PIPXADDRESS;
  2383. typedef struct _NET_ADDRESS {
  2384. IPXADDRESS na_IPXAddr;
  2385. USHORT na_socket;
  2386. } NET_ADDRESS;
  2387. typedef NET_ADDRESS UNALIGNED *UPNET_ADDRESS;
  2388. typedef struct __MIDL___MIDL_itf_netmon_0000_0019 {
  2389. USHORT ipx_checksum;
  2390. USHORT ipx_length;
  2391. UCHAR ipx_xport_control;
  2392. UCHAR ipx_packet_type;
  2393. NET_ADDRESS ipx_dest;
  2394. NET_ADDRESS ipx_source;
  2395. } IPX_HDR;
  2396. typedef IPX_HDR UNALIGNED *ULPIPX_HDR;
  2397. typedef struct _SPX_HDR {
  2398. IPX_HDR spx_idp_hdr;
  2399. UCHAR spx_conn_ctrl;
  2400. UCHAR spx_data_type;
  2401. USHORT spx_src_conn_id;
  2402. USHORT spx_dest_conn_id;
  2403. USHORT spx_sequence_num;
  2404. USHORT spx_ack_num;
  2405. USHORT spx_alloc_num;
  2406. } SPX_HDR;
  2407. typedef SPX_HDR UNALIGNED *PSPX_HDR;
  2408. typedef struct _TCP {
  2409. WORD SrcPort;
  2410. WORD DstPort;
  2411. DWORD SeqNum;
  2412. DWORD AckNum;
  2413. BYTE DataOff;
  2414. BYTE Flags;
  2415. WORD Window;
  2416. WORD Chksum;
  2417. WORD UrgPtr;
  2418. } TCP;
  2419. typedef TCP *LPTCP;
  2420. typedef TCP UNALIGNED *ULPTCP;
  2421. #ifndef __CRT__NO_INLINE
  2422. INLINE DWORD TCP_HdrLen(ULPTCP pTCP) { return (pTCP->DataOff & 0xf0) >> 2; }
  2423. INLINE DWORD TCP_SrcPort(ULPTCP pTCP) { return XCHG(pTCP->SrcPort); }
  2424. INLINE DWORD TCP_DstPort(ULPTCP pTCP) { return XCHG(pTCP->DstPort); }
  2425. #endif
  2426. #define TCP_OPTION_ENDOFOPTIONS (0)
  2427. #define TCP_OPTION_NOP (1)
  2428. #define TCP_OPTION_MAXSEGSIZE (2)
  2429. #define TCP_OPTION_WSCALE (3)
  2430. #define TCP_OPTION_SACK_PERMITTED (4)
  2431. #define TCP_OPTION_SACK (5)
  2432. #define TCP_OPTION_TIMESTAMPS (8)
  2433. #define TCP_FLAG_URGENT (0x20)
  2434. #define TCP_FLAG_ACK (0x10)
  2435. #define TCP_FLAG_PUSH (0x8)
  2436. #define TCP_FLAG_RESET (0x4)
  2437. #define TCP_FLAG_SYN (0x2)
  2438. #define TCP_FLAG_FIN (0x1)
  2439. #define TCP_RESERVED_MASK (0xfc0)
  2440. #pragma pack(pop)
  2441. #define DEFAULT_DELAYED_BUFFER_SIZE (1)
  2442. #define USE_DEFAULT_DRIVE_LETTER (0)
  2443. #define RTC_FRAME_SIZE_FULL (0)
  2444. extern RPC_IF_HANDLE __MIDL_itf_netmon_0000_v0_0_c_ifspec;
  2445. extern RPC_IF_HANDLE __MIDL_itf_netmon_0000_v0_0_s_ifspec;
  2446. #ifndef __IDelaydC_INTERFACE_DEFINED__
  2447. #define __IDelaydC_INTERFACE_DEFINED__
  2448. EXTERN_C const IID IID_IDelaydC;
  2449. #if defined(__cplusplus) && !defined(CINTERFACE)
  2450. struct IDelaydC : public IUnknown {
  2451. public:
  2452. virtual HRESULT WINAPI Connect(HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob) = 0;
  2453. virtual HRESULT WINAPI Disconnect(void) = 0;
  2454. virtual HRESULT WINAPI QueryStatus(NETWORKSTATUS *pNetworkStatus) = 0;
  2455. virtual HRESULT WINAPI Configure(HBLOB hConfigurationBlob,HBLOB hErrorBlob) = 0;
  2456. virtual HRESULT WINAPI Start(char *pFileName) = 0;
  2457. virtual HRESULT WINAPI Pause(void) = 0;
  2458. virtual HRESULT WINAPI Resume(void) = 0;
  2459. virtual HRESULT WINAPI Stop(LPSTATISTICS lpStats) = 0;
  2460. virtual HRESULT WINAPI GetControlState(WINBOOL *IsRunnning,WINBOOL *IsPaused) = 0;
  2461. virtual HRESULT WINAPI GetTotalStatistics(LPSTATISTICS lpStats,WINBOOL fClearAfterReading) = 0;
  2462. virtual HRESULT WINAPI GetConversationStatistics(DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading) = 0;
  2463. virtual HRESULT WINAPI InsertSpecialFrame(DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength) = 0;
  2464. virtual HRESULT WINAPI QueryStations(QUERYTABLE *lpQueryTable) = 0;
  2465. };
  2466. #else
  2467. typedef struct IDelaydCVtbl {
  2468. BEGIN_INTERFACE
  2469. HRESULT (WINAPI *QueryInterface)(IDelaydC *This,REFIID riid,void **ppvObject);
  2470. ULONG (WINAPI *AddRef)(IDelaydC *This);
  2471. ULONG (WINAPI *Release)(IDelaydC *This);
  2472. HRESULT (WINAPI *Connect)(IDelaydC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob);
  2473. HRESULT (WINAPI *Disconnect)(IDelaydC *This);
  2474. HRESULT (WINAPI *QueryStatus)(IDelaydC *This,NETWORKSTATUS *pNetworkStatus);
  2475. HRESULT (WINAPI *Configure)(IDelaydC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob);
  2476. HRESULT (WINAPI *Start)(IDelaydC *This,char *pFileName);
  2477. HRESULT (WINAPI *Pause)(IDelaydC *This);
  2478. HRESULT (WINAPI *Resume)(IDelaydC *This);
  2479. HRESULT (WINAPI *Stop)(IDelaydC *This,LPSTATISTICS lpStats);
  2480. HRESULT (WINAPI *GetControlState)(IDelaydC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused);
  2481. HRESULT (WINAPI *GetTotalStatistics)(IDelaydC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading);
  2482. HRESULT (WINAPI *GetConversationStatistics)(IDelaydC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading);
  2483. HRESULT (WINAPI *InsertSpecialFrame)(IDelaydC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength);
  2484. HRESULT (WINAPI *QueryStations)(IDelaydC *This,QUERYTABLE *lpQueryTable);
  2485. END_INTERFACE
  2486. } IDelaydCVtbl;
  2487. struct IDelaydC {
  2488. CONST_VTBL struct IDelaydCVtbl *lpVtbl;
  2489. };
  2490. #ifdef COBJMACROS
  2491. #define IDelaydC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2492. #define IDelaydC_AddRef(This) (This)->lpVtbl->AddRef(This)
  2493. #define IDelaydC_Release(This) (This)->lpVtbl->Release(This)
  2494. #define IDelaydC_Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob) (This)->lpVtbl->Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob)
  2495. #define IDelaydC_Disconnect(This) (This)->lpVtbl->Disconnect(This)
  2496. #define IDelaydC_QueryStatus(This,pNetworkStatus) (This)->lpVtbl->QueryStatus(This,pNetworkStatus)
  2497. #define IDelaydC_Configure(This,hConfigurationBlob,hErrorBlob) (This)->lpVtbl->Configure(This,hConfigurationBlob,hErrorBlob)
  2498. #define IDelaydC_Start(This,pFileName) (This)->lpVtbl->Start(This,pFileName)
  2499. #define IDelaydC_Pause(This) (This)->lpVtbl->Pause(This)
  2500. #define IDelaydC_Resume(This) (This)->lpVtbl->Resume(This)
  2501. #define IDelaydC_Stop(This,lpStats) (This)->lpVtbl->Stop(This,lpStats)
  2502. #define IDelaydC_GetControlState(This,IsRunnning,IsPaused) (This)->lpVtbl->GetControlState(This,IsRunnning,IsPaused)
  2503. #define IDelaydC_GetTotalStatistics(This,lpStats,fClearAfterReading) (This)->lpVtbl->GetTotalStatistics(This,lpStats,fClearAfterReading)
  2504. #define IDelaydC_GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) (This)->lpVtbl->GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading)
  2505. #define IDelaydC_InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) (This)->lpVtbl->InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength)
  2506. #define IDelaydC_QueryStations(This,lpQueryTable) (This)->lpVtbl->QueryStations(This,lpQueryTable)
  2507. #endif
  2508. #endif
  2509. HRESULT WINAPI IDelaydC_Connect_Proxy(IDelaydC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob);
  2510. void __RPC_STUB IDelaydC_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2511. HRESULT WINAPI IDelaydC_Disconnect_Proxy(IDelaydC *This);
  2512. void __RPC_STUB IDelaydC_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2513. HRESULT WINAPI IDelaydC_QueryStatus_Proxy(IDelaydC *This,NETWORKSTATUS *pNetworkStatus);
  2514. void __RPC_STUB IDelaydC_QueryStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2515. HRESULT WINAPI IDelaydC_Configure_Proxy(IDelaydC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob);
  2516. void __RPC_STUB IDelaydC_Configure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2517. HRESULT WINAPI IDelaydC_Start_Proxy(IDelaydC *This,char *pFileName);
  2518. void __RPC_STUB IDelaydC_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2519. HRESULT WINAPI IDelaydC_Pause_Proxy(IDelaydC *This);
  2520. void __RPC_STUB IDelaydC_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2521. HRESULT WINAPI IDelaydC_Resume_Proxy(IDelaydC *This);
  2522. void __RPC_STUB IDelaydC_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2523. HRESULT WINAPI IDelaydC_Stop_Proxy(IDelaydC *This,LPSTATISTICS lpStats);
  2524. void __RPC_STUB IDelaydC_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2525. HRESULT WINAPI IDelaydC_GetControlState_Proxy(IDelaydC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused);
  2526. void __RPC_STUB IDelaydC_GetControlState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2527. HRESULT WINAPI IDelaydC_GetTotalStatistics_Proxy(IDelaydC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading);
  2528. void __RPC_STUB IDelaydC_GetTotalStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2529. HRESULT WINAPI IDelaydC_GetConversationStatistics_Proxy(IDelaydC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading);
  2530. void __RPC_STUB IDelaydC_GetConversationStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2531. HRESULT WINAPI IDelaydC_InsertSpecialFrame_Proxy(IDelaydC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength);
  2532. void __RPC_STUB IDelaydC_InsertSpecialFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2533. HRESULT WINAPI IDelaydC_QueryStations_Proxy(IDelaydC *This,QUERYTABLE *lpQueryTable);
  2534. void __RPC_STUB IDelaydC_QueryStations_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2535. #endif
  2536. #define DEFAULT_RTC_BUFFER_SIZE (0x100000)
  2537. extern RPC_IF_HANDLE __MIDL_itf_netmon_0010_v0_0_c_ifspec;
  2538. extern RPC_IF_HANDLE __MIDL_itf_netmon_0010_v0_0_s_ifspec;
  2539. #ifndef __IRTC_INTERFACE_DEFINED__
  2540. #define __IRTC_INTERFACE_DEFINED__
  2541. EXTERN_C const IID IID_IRTC;
  2542. #if defined(__cplusplus) && !defined(CINTERFACE)
  2543. struct IRTC : public IUnknown {
  2544. public:
  2545. virtual HRESULT WINAPI Connect(HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID FramesCallbackProc,LPVOID UserContext,HBLOB hErrorBlob) = 0;
  2546. virtual HRESULT WINAPI Disconnect(void) = 0;
  2547. virtual HRESULT WINAPI QueryStatus(NETWORKSTATUS *pNetworkStatus) = 0;
  2548. virtual HRESULT WINAPI Configure(HBLOB hConfigurationBlob,HBLOB hErrorBlob) = 0;
  2549. virtual HRESULT WINAPI Start(void) = 0;
  2550. virtual HRESULT WINAPI Pause(void) = 0;
  2551. virtual HRESULT WINAPI Resume(void) = 0;
  2552. virtual HRESULT WINAPI Stop(void) = 0;
  2553. virtual HRESULT WINAPI GetControlState(WINBOOL *IsRunnning,WINBOOL *IsPaused) = 0;
  2554. virtual HRESULT WINAPI GetTotalStatistics(LPSTATISTICS lpStats,WINBOOL fClearAfterReading) = 0;
  2555. virtual HRESULT WINAPI GetConversationStatistics(DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading) = 0;
  2556. virtual HRESULT WINAPI InsertSpecialFrame(DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength) = 0;
  2557. virtual HRESULT WINAPI QueryStations(QUERYTABLE *lpQueryTable) = 0;
  2558. };
  2559. #else
  2560. typedef struct IRTCVtbl {
  2561. BEGIN_INTERFACE
  2562. HRESULT (WINAPI *QueryInterface)(IRTC *This,REFIID riid,void **ppvObject);
  2563. ULONG (WINAPI *AddRef)(IRTC *This);
  2564. ULONG (WINAPI *Release)(IRTC *This);
  2565. HRESULT (WINAPI *Connect)(IRTC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID FramesCallbackProc,LPVOID UserContext,HBLOB hErrorBlob);
  2566. HRESULT (WINAPI *Disconnect)(IRTC *This);
  2567. HRESULT (WINAPI *QueryStatus)(IRTC *This,NETWORKSTATUS *pNetworkStatus);
  2568. HRESULT (WINAPI *Configure)(IRTC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob);
  2569. HRESULT (WINAPI *Start)(IRTC *This);
  2570. HRESULT (WINAPI *Pause)(IRTC *This);
  2571. HRESULT (WINAPI *Resume)(IRTC *This);
  2572. HRESULT (WINAPI *Stop)(IRTC *This);
  2573. HRESULT (WINAPI *GetControlState)(IRTC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused);
  2574. HRESULT (WINAPI *GetTotalStatistics)(IRTC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading);
  2575. HRESULT (WINAPI *GetConversationStatistics)(IRTC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading);
  2576. HRESULT (WINAPI *InsertSpecialFrame)(IRTC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength);
  2577. HRESULT (WINAPI *QueryStations)(IRTC *This,QUERYTABLE *lpQueryTable);
  2578. END_INTERFACE
  2579. } IRTCVtbl;
  2580. struct IRTC {
  2581. CONST_VTBL struct IRTCVtbl *lpVtbl;
  2582. };
  2583. #ifdef COBJMACROS
  2584. #define IRTC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2585. #define IRTC_AddRef(This) (This)->lpVtbl->AddRef(This)
  2586. #define IRTC_Release(This) (This)->lpVtbl->Release(This)
  2587. #define IRTC_Connect(This,hInputBlob,StatusCallbackProc,FramesCallbackProc,UserContext,hErrorBlob) (This)->lpVtbl->Connect(This,hInputBlob,StatusCallbackProc,FramesCallbackProc,UserContext,hErrorBlob)
  2588. #define IRTC_Disconnect(This) (This)->lpVtbl->Disconnect(This)
  2589. #define IRTC_QueryStatus(This,pNetworkStatus) (This)->lpVtbl->QueryStatus(This,pNetworkStatus)
  2590. #define IRTC_Configure(This,hConfigurationBlob,hErrorBlob) (This)->lpVtbl->Configure(This,hConfigurationBlob,hErrorBlob)
  2591. #define IRTC_Start(This) (This)->lpVtbl->Start(This)
  2592. #define IRTC_Pause(This) (This)->lpVtbl->Pause(This)
  2593. #define IRTC_Resume(This) (This)->lpVtbl->Resume(This)
  2594. #define IRTC_Stop(This) (This)->lpVtbl->Stop(This)
  2595. #define IRTC_GetControlState(This,IsRunnning,IsPaused) (This)->lpVtbl->GetControlState(This,IsRunnning,IsPaused)
  2596. #define IRTC_GetTotalStatistics(This,lpStats,fClearAfterReading) (This)->lpVtbl->GetTotalStatistics(This,lpStats,fClearAfterReading)
  2597. #define IRTC_GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) (This)->lpVtbl->GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading)
  2598. #define IRTC_InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) (This)->lpVtbl->InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength)
  2599. #define IRTC_QueryStations(This,lpQueryTable) (This)->lpVtbl->QueryStations(This,lpQueryTable)
  2600. #endif
  2601. #endif
  2602. HRESULT WINAPI IRTC_Connect_Proxy(IRTC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID FramesCallbackProc,LPVOID UserContext,HBLOB hErrorBlob);
  2603. void __RPC_STUB IRTC_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2604. HRESULT WINAPI IRTC_Disconnect_Proxy(IRTC *This);
  2605. void __RPC_STUB IRTC_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2606. HRESULT WINAPI IRTC_QueryStatus_Proxy(IRTC *This,NETWORKSTATUS *pNetworkStatus);
  2607. void __RPC_STUB IRTC_QueryStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2608. HRESULT WINAPI IRTC_Configure_Proxy(IRTC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob);
  2609. void __RPC_STUB IRTC_Configure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2610. HRESULT WINAPI IRTC_Start_Proxy(IRTC *This);
  2611. void __RPC_STUB IRTC_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2612. HRESULT WINAPI IRTC_Pause_Proxy(IRTC *This);
  2613. void __RPC_STUB IRTC_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2614. HRESULT WINAPI IRTC_Resume_Proxy(IRTC *This);
  2615. void __RPC_STUB IRTC_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2616. HRESULT WINAPI IRTC_Stop_Proxy(IRTC *This);
  2617. void __RPC_STUB IRTC_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2618. HRESULT WINAPI IRTC_GetControlState_Proxy(IRTC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused);
  2619. void __RPC_STUB IRTC_GetControlState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2620. HRESULT WINAPI IRTC_GetTotalStatistics_Proxy(IRTC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading);
  2621. void __RPC_STUB IRTC_GetTotalStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2622. HRESULT WINAPI IRTC_GetConversationStatistics_Proxy(IRTC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading);
  2623. void __RPC_STUB IRTC_GetConversationStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2624. HRESULT WINAPI IRTC_InsertSpecialFrame_Proxy(IRTC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength);
  2625. void __RPC_STUB IRTC_InsertSpecialFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2626. HRESULT WINAPI IRTC_QueryStations_Proxy(IRTC *This,QUERYTABLE *lpQueryTable);
  2627. void __RPC_STUB IRTC_QueryStations_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2628. #endif
  2629. extern RPC_IF_HANDLE __MIDL_itf_netmon_0012_v0_0_c_ifspec;
  2630. extern RPC_IF_HANDLE __MIDL_itf_netmon_0012_v0_0_s_ifspec;
  2631. #ifndef __IStats_INTERFACE_DEFINED__
  2632. #define __IStats_INTERFACE_DEFINED__
  2633. EXTERN_C const IID IID_IStats;
  2634. #if defined(__cplusplus) && !defined(CINTERFACE)
  2635. struct IStats : public IUnknown {
  2636. public:
  2637. virtual HRESULT WINAPI Connect(HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob) = 0;
  2638. virtual HRESULT WINAPI Disconnect(void) = 0;
  2639. virtual HRESULT WINAPI QueryStatus(NETWORKSTATUS *pNetworkStatus) = 0;
  2640. virtual HRESULT WINAPI Configure(HBLOB hConfigurationBlob,HBLOB hErrorBlob) = 0;
  2641. virtual HRESULT WINAPI Start(void) = 0;
  2642. virtual HRESULT WINAPI Pause(void) = 0;
  2643. virtual HRESULT WINAPI Resume(void) = 0;
  2644. virtual HRESULT WINAPI Stop(void) = 0;
  2645. virtual HRESULT WINAPI GetControlState(WINBOOL *IsRunnning,WINBOOL *IsPaused) = 0;
  2646. virtual HRESULT WINAPI GetTotalStatistics(LPSTATISTICS lpStats,WINBOOL fClearAfterReading) = 0;
  2647. virtual HRESULT WINAPI GetConversationStatistics(DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading) = 0;
  2648. virtual HRESULT WINAPI InsertSpecialFrame(DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength) = 0;
  2649. virtual HRESULT WINAPI QueryStations(QUERYTABLE *lpQueryTable) = 0;
  2650. };
  2651. #else
  2652. typedef struct IStatsVtbl {
  2653. BEGIN_INTERFACE
  2654. HRESULT (WINAPI *QueryInterface)(IStats *This,REFIID riid,void **ppvObject);
  2655. ULONG (WINAPI *AddRef)(IStats *This);
  2656. ULONG (WINAPI *Release)(IStats *This);
  2657. HRESULT (WINAPI *Connect)(IStats *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob);
  2658. HRESULT (WINAPI *Disconnect)(IStats *This);
  2659. HRESULT (WINAPI *QueryStatus)(IStats *This,NETWORKSTATUS *pNetworkStatus);
  2660. HRESULT (WINAPI *Configure)(IStats *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob);
  2661. HRESULT (WINAPI *Start)(IStats *This);
  2662. HRESULT (WINAPI *Pause)(IStats *This);
  2663. HRESULT (WINAPI *Resume)(IStats *This);
  2664. HRESULT (WINAPI *Stop)(IStats *This);
  2665. HRESULT (WINAPI *GetControlState)(IStats *This,WINBOOL *IsRunnning,WINBOOL *IsPaused);
  2666. HRESULT (WINAPI *GetTotalStatistics)(IStats *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading);
  2667. HRESULT (WINAPI *GetConversationStatistics)(IStats *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading);
  2668. HRESULT (WINAPI *InsertSpecialFrame)(IStats *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength);
  2669. HRESULT (WINAPI *QueryStations)(IStats *This,QUERYTABLE *lpQueryTable);
  2670. END_INTERFACE
  2671. } IStatsVtbl;
  2672. struct IStats {
  2673. CONST_VTBL struct IStatsVtbl *lpVtbl;
  2674. };
  2675. #ifdef COBJMACROS
  2676. #define IStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  2677. #define IStats_AddRef(This) (This)->lpVtbl->AddRef(This)
  2678. #define IStats_Release(This) (This)->lpVtbl->Release(This)
  2679. #define IStats_Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob) (This)->lpVtbl->Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob)
  2680. #define IStats_Disconnect(This) (This)->lpVtbl->Disconnect(This)
  2681. #define IStats_QueryStatus(This,pNetworkStatus) (This)->lpVtbl->QueryStatus(This,pNetworkStatus)
  2682. #define IStats_Configure(This,hConfigurationBlob,hErrorBlob) (This)->lpVtbl->Configure(This,hConfigurationBlob,hErrorBlob)
  2683. #define IStats_Start(This) (This)->lpVtbl->Start(This)
  2684. #define IStats_Pause(This) (This)->lpVtbl->Pause(This)
  2685. #define IStats_Resume(This) (This)->lpVtbl->Resume(This)
  2686. #define IStats_Stop(This) (This)->lpVtbl->Stop(This)
  2687. #define IStats_GetControlState(This,IsRunnning,IsPaused) (This)->lpVtbl->GetControlState(This,IsRunnning,IsPaused)
  2688. #define IStats_GetTotalStatistics(This,lpStats,fClearAfterReading) (This)->lpVtbl->GetTotalStatistics(This,lpStats,fClearAfterReading)
  2689. #define IStats_GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) (This)->lpVtbl->GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading)
  2690. #define IStats_InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) (This)->lpVtbl->InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength)
  2691. #define IStats_QueryStations(This,lpQueryTable) (This)->lpVtbl->QueryStations(This,lpQueryTable)
  2692. #endif
  2693. #endif
  2694. HRESULT WINAPI IStats_Connect_Proxy(IStats *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob);
  2695. void __RPC_STUB IStats_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2696. HRESULT WINAPI IStats_Disconnect_Proxy(IStats *This);
  2697. void __RPC_STUB IStats_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2698. HRESULT WINAPI IStats_QueryStatus_Proxy(IStats *This,NETWORKSTATUS *pNetworkStatus);
  2699. void __RPC_STUB IStats_QueryStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2700. HRESULT WINAPI IStats_Configure_Proxy(IStats *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob);
  2701. void __RPC_STUB IStats_Configure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2702. HRESULT WINAPI IStats_Start_Proxy(IStats *This);
  2703. void __RPC_STUB IStats_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2704. HRESULT WINAPI IStats_Pause_Proxy(IStats *This);
  2705. void __RPC_STUB IStats_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2706. HRESULT WINAPI IStats_Resume_Proxy(IStats *This);
  2707. void __RPC_STUB IStats_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2708. HRESULT WINAPI IStats_Stop_Proxy(IStats *This);
  2709. void __RPC_STUB IStats_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2710. HRESULT WINAPI IStats_GetControlState_Proxy(IStats *This,WINBOOL *IsRunnning,WINBOOL *IsPaused);
  2711. void __RPC_STUB IStats_GetControlState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2712. HRESULT WINAPI IStats_GetTotalStatistics_Proxy(IStats *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading);
  2713. void __RPC_STUB IStats_GetTotalStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2714. HRESULT WINAPI IStats_GetConversationStatistics_Proxy(IStats *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading);
  2715. void __RPC_STUB IStats_GetConversationStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2716. HRESULT WINAPI IStats_InsertSpecialFrame_Proxy(IStats *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength);
  2717. void __RPC_STUB IStats_InsertSpecialFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2718. HRESULT WINAPI IStats_QueryStations_Proxy(IStats *This,QUERYTABLE *lpQueryTable);
  2719. void __RPC_STUB IStats_QueryStations_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
  2720. #endif
  2721. #pragma pack()
  2722. extern RPC_IF_HANDLE __MIDL_itf_netmon_0014_v0_0_c_ifspec;
  2723. extern RPC_IF_HANDLE __MIDL_itf_netmon_0014_v0_0_s_ifspec;
  2724. #ifdef __cplusplus
  2725. }
  2726. #endif
  2727. #endif