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