|  | /** | 
|  | * This file has no copyright assigned and is placed in the Public Domain. | 
|  | * This file is part of the mingw-w64 runtime package. | 
|  | * No warranty is given; refer to the file DISCLAIMER.PD within this package. | 
|  | */ | 
|  | #ifndef __REQUIRED_RPCNDR_H_VERSION__ | 
|  | #define __REQUIRED_RPCNDR_H_VERSION__ 475 | 
|  | #endif | 
|  |  | 
|  | #include "rpc.h" | 
|  | #include "rpcndr.h" | 
|  |  | 
|  | #ifndef __RPCNDR_H_VERSION__ | 
|  | #error This stub requires an updated version of <rpcndr.h> | 
|  | #endif | 
|  |  | 
|  | #ifndef COM_NO_WINDOWS_H | 
|  | #include "windows.h" | 
|  | #include "ole2.h" | 
|  | #endif | 
|  |  | 
|  | #ifndef __netmon_h__ | 
|  | #define __netmon_h__ | 
|  |  | 
|  | #ifndef __IDelaydC_FWD_DEFINED__ | 
|  | #define __IDelaydC_FWD_DEFINED__ | 
|  | typedef struct IDelaydC IDelaydC; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IRTC_FWD_DEFINED__ | 
|  | #define __IRTC_FWD_DEFINED__ | 
|  | typedef struct IRTC IRTC; | 
|  | #endif | 
|  |  | 
|  | #ifndef __IStats_FWD_DEFINED__ | 
|  | #define __IStats_FWD_DEFINED__ | 
|  | typedef struct IStats IStats; | 
|  | #endif | 
|  |  | 
|  | #include "unknwn.h" | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C"{ | 
|  | #endif | 
|  |  | 
|  | #ifndef __MIDL_user_allocate_free_DEFINED__ | 
|  | #define __MIDL_user_allocate_free_DEFINED__ | 
|  | void *__RPC_API MIDL_user_allocate(size_t); | 
|  | void __RPC_API MIDL_user_free(void *); | 
|  | #endif | 
|  |  | 
|  | #include <winerror.h> | 
|  | #include <winerror.h> | 
|  |  | 
|  | #pragma pack(1) | 
|  |  | 
|  | #ifdef _X86_ | 
|  | #pragma pack(1) | 
|  | #else | 
|  | #pragma pack() | 
|  | #endif | 
|  |  | 
|  | typedef BYTE *LPBYTE; | 
|  | typedef const void *HBLOB; | 
|  |  | 
|  | #define MAC_TYPE_UNKNOWN (0) | 
|  | #define MAC_TYPE_ETHERNET (1) | 
|  | #define MAC_TYPE_TOKENRING (2) | 
|  | #define MAC_TYPE_FDDI (3) | 
|  | #define MAC_TYPE_ATM (4) | 
|  | #define MAC_TYPE_1394 (5) | 
|  | #define MACHINE_NAME_LENGTH (16) | 
|  | #define USER_NAME_LENGTH (32) | 
|  | #define ADAPTER_COMMENT_LENGTH (32) | 
|  | #define CONNECTION_FLAGS_WANT_CONVERSATION_STATS (0x1) | 
|  |  | 
|  | typedef struct _TRANSMITSTATS { | 
|  | DWORD TotalFramesSent; | 
|  | DWORD TotalBytesSent; | 
|  | DWORD TotalTransmitErrors; | 
|  | } TRANSMITSTATS; | 
|  |  | 
|  | typedef TRANSMITSTATS *LPTRANSMITSTATS; | 
|  |  | 
|  | #define TRANSMITSTATS_SIZE (sizeof(TRANSMITSTATS)) | 
|  |  | 
|  | typedef struct _STATISTICS { | 
|  | __MINGW_EXTENSION __int64 TimeElapsed; | 
|  | DWORD TotalFramesCaptured; | 
|  | DWORD TotalBytesCaptured; | 
|  | DWORD TotalFramesFiltered; | 
|  | DWORD TotalBytesFiltered; | 
|  | DWORD TotalMulticastsFiltered; | 
|  | DWORD TotalBroadcastsFiltered; | 
|  | DWORD TotalFramesSeen; | 
|  | DWORD TotalBytesSeen; | 
|  | DWORD TotalMulticastsReceived; | 
|  | DWORD TotalBroadcastsReceived; | 
|  | DWORD TotalFramesDropped; | 
|  | DWORD TotalFramesDroppedFromBuffer; | 
|  | DWORD MacFramesReceived; | 
|  | DWORD MacCRCErrors; | 
|  | __MINGW_EXTENSION __int64 MacBytesReceivedEx; | 
|  | DWORD MacFramesDropped_NoBuffers; | 
|  | DWORD MacMulticastsReceived; | 
|  | DWORD MacBroadcastsReceived; | 
|  | DWORD MacFramesDropped_HwError; | 
|  | } STATISTICS; | 
|  |  | 
|  | typedef STATISTICS *LPSTATISTICS; | 
|  |  | 
|  | #define STATISTICS_SIZE (sizeof(STATISTICS)) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  |  | 
|  | #define MAX_NAME_SIZE (32) | 
|  | #define IP_ADDRESS_SIZE (4) | 
|  | #define MAC_ADDRESS_SIZE (6) | 
|  | #define IP6_ADDRESS_SIZE (16) | 
|  | #define MAX_ADDRESS_SIZE (16) | 
|  |  | 
|  | #define ADDRESS_TYPE_ETHERNET (0) | 
|  | #define ADDRESS_TYPE_IP (1) | 
|  | #define ADDRESS_TYPE_IPX (2) | 
|  | #define ADDRESS_TYPE_TOKENRING (3) | 
|  | #define ADDRESS_TYPE_FDDI (4) | 
|  | #define ADDRESS_TYPE_XNS (5) | 
|  | #define ADDRESS_TYPE_ANY (6) | 
|  | #define ADDRESS_TYPE_ANY_GROUP (7) | 
|  | #define ADDRESS_TYPE_FIND_HIGHEST (8) | 
|  | #define ADDRESS_TYPE_VINES_IP (9) | 
|  | #define ADDRESS_TYPE_LOCAL_ONLY (10) | 
|  | #define ADDRESS_TYPE_ATM (11) | 
|  | #define ADDRESS_TYPE_1394 (12) | 
|  | #define ADDRESS_TYPE_IP6 (13) | 
|  |  | 
|  | #define ADDRESSTYPE_FLAGS_NORMALIZE (0x1) | 
|  | #define ADDRESSTYPE_FLAGS_BIT_REVERSE (0x2) | 
|  |  | 
|  | typedef struct _VINES_IP_ADDRESS { | 
|  | DWORD NetID; | 
|  | WORD SubnetID; | 
|  | } VINES_IP_ADDRESS; | 
|  |  | 
|  | typedef VINES_IP_ADDRESS *LPVINES_IP_ADDRESS; | 
|  |  | 
|  | #define VINES_IP_ADDRESS_SIZE (sizeof(VINES_IP_ADDRESS)) | 
|  |  | 
|  | typedef struct _IPX_ADDR { | 
|  | BYTE Subnet[4]; | 
|  | BYTE Address[6]; | 
|  | } IPX_ADDR; | 
|  |  | 
|  | typedef IPX_ADDR *LPIPX_ADDR; | 
|  |  | 
|  | #define IPX_ADDR_SIZE (sizeof(IPX_ADDR)) | 
|  |  | 
|  | typedef IPX_ADDR XNS_ADDRESS; | 
|  | typedef IPX_ADDR *LPXNS_ADDRESS; | 
|  |  | 
|  | typedef struct _ETHERNET_SRC_ADDRESS { | 
|  | BYTE RoutingBit: 1; | 
|  | BYTE LocalBit: 1; | 
|  | BYTE Byte0: 6; | 
|  | BYTE Reserved[5]; | 
|  | } ETHERNET_SRC_ADDRESS; | 
|  |  | 
|  | typedef ETHERNET_SRC_ADDRESS *LPETHERNET_SRC_ADDRESS; | 
|  |  | 
|  | typedef struct _ETHERNET_DST_ADDRESS { | 
|  | BYTE GroupBit: 1; | 
|  | BYTE AdminBit: 1; | 
|  | BYTE Byte0: 6; | 
|  | BYTE Reserved[5]; | 
|  | } ETHERNET_DST_ADDRESS; | 
|  |  | 
|  | typedef ETHERNET_DST_ADDRESS *LPETHERNET_DST_ADDRESS; | 
|  | typedef ETHERNET_SRC_ADDRESS FDDI_SRC_ADDRESS; | 
|  | typedef ETHERNET_DST_ADDRESS FDDI_DST_ADDRESS; | 
|  | typedef FDDI_SRC_ADDRESS *LPFDDI_SRC_ADDRESS; | 
|  | typedef FDDI_DST_ADDRESS *LPFDDI_DST_ADDRESS; | 
|  |  | 
|  | typedef struct _TOKENRING_SRC_ADDRESS { | 
|  | BYTE Byte0: 6; | 
|  | BYTE LocalBit: 1; | 
|  | BYTE RoutingBit: 1; | 
|  | BYTE Byte1; | 
|  | BYTE Byte2: 7; | 
|  | BYTE Functional: 1; | 
|  | BYTE Reserved[3]; | 
|  | } TOKENRING_SRC_ADDRESS; | 
|  |  | 
|  | typedef TOKENRING_SRC_ADDRESS *LPTOKENRING_SRC_ADDRESS; | 
|  |  | 
|  | typedef struct _TOKENRING_DST_ADDRESS { | 
|  | BYTE Byte0: 6; | 
|  | BYTE AdminBit: 1; | 
|  | BYTE GroupBit: 1; | 
|  | BYTE Reserved[5]; | 
|  | } TOKENRING_DST_ADDRESS; | 
|  |  | 
|  | typedef TOKENRING_DST_ADDRESS *LPTOKENRING_DST_ADDRESS; | 
|  |  | 
|  | typedef struct _ADDRESS2 { | 
|  | DWORD Type; | 
|  | __C89_NAMELESS union { | 
|  | BYTE MACAddress[MAC_ADDRESS_SIZE]; | 
|  | BYTE IPAddress[IP_ADDRESS_SIZE]; | 
|  | BYTE IP6Address[IP6_ADDRESS_SIZE]; | 
|  | BYTE IPXRawAddress[IPX_ADDR_SIZE]; | 
|  | IPX_ADDR IPXAddress; | 
|  | BYTE VinesIPRawAddress[VINES_IP_ADDRESS_SIZE]; | 
|  | VINES_IP_ADDRESS VinesIPAddress; | 
|  | ETHERNET_SRC_ADDRESS EthernetSrcAddress; | 
|  | ETHERNET_DST_ADDRESS EthernetDstAddress; | 
|  | TOKENRING_SRC_ADDRESS TokenringSrcAddress; | 
|  | TOKENRING_DST_ADDRESS TokenringDstAddress; | 
|  | FDDI_SRC_ADDRESS FddiSrcAddress; | 
|  | FDDI_DST_ADDRESS FddiDstAddress; | 
|  | }; | 
|  | WORD Flags; | 
|  | } ADDRESS2; | 
|  |  | 
|  | typedef ADDRESS2 *LPADDRESS2; | 
|  |  | 
|  | #define ADDRESS2_SIZE sizeof(ADDRESS2) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #define ADDRESS_FLAGS_MATCH_DST (0x1) | 
|  | #define ADDRESS_FLAGS_MATCH_SRC (0x2) | 
|  | #define ADDRESS_FLAGS_EXCLUDE (0x4) | 
|  | #define ADDRESS_FLAGS_DST_GROUP_ADDR (0x8) | 
|  | #define ADDRESS_FLAGS_MATCH_BOTH (0x3) | 
|  |  | 
|  | typedef struct _ADDRESSPAIR2 { | 
|  | WORD AddressFlags; | 
|  | WORD NalReserved; | 
|  | ADDRESS2 DstAddress; | 
|  | ADDRESS2 SrcAddress; | 
|  | } ADDRESSPAIR2; | 
|  |  | 
|  | typedef ADDRESSPAIR2 *LPADDRESSPAIR2; | 
|  |  | 
|  | #define ADDRESSPAIR2_SIZE sizeof(ADDRESSPAIR2) | 
|  |  | 
|  | #define MAX_ADDRESS_PAIRS (8) | 
|  |  | 
|  | typedef struct _ADDRESSTABLE2 { | 
|  | DWORD nAddressPairs; | 
|  | DWORD nNonMacAddressPairs; | 
|  | ADDRESSPAIR2 AddressPair[MAX_ADDRESS_PAIRS]; | 
|  | } ADDRESSTABLE2; | 
|  |  | 
|  | typedef ADDRESSTABLE2 *LPADDRESSTABLE2; | 
|  |  | 
|  | #define ADDRESSTABLE2_SIZE sizeof(ADDRESSTABLE2) | 
|  |  | 
|  | #define NETWORKINFO_FLAGS_PMODE_NOT_SUPPORTED (0x1) | 
|  | #define NETWORKINFO_FLAGS_REMOTE_NAL (0x4) | 
|  | #define NETWORKINFO_FLAGS_REMOTE_NAL_CONNECTED (0x8) | 
|  | #define NETWORKINFO_FLAGS_REMOTE_CARD (0x10) | 
|  | #define NETWORKINFO_FLAGS_RAS (0x20) | 
|  | #define NETWORKINFO_RESERVED_FIELD_SIZE (FIELD_OFFSET(ADDRESS2,IPXAddress) + sizeof(IPX_ADDR)) | 
|  |  | 
|  | typedef struct _NETWORKINFO { | 
|  | BYTE PermanentAddr[6]; | 
|  | BYTE CurrentAddr[6]; | 
|  | BYTE Reserved[NETWORKINFO_RESERVED_FIELD_SIZE]; | 
|  | DWORD LinkSpeed; | 
|  | DWORD MacType; | 
|  | DWORD MaxFrameSize; | 
|  | DWORD Flags; | 
|  | DWORD TimestampScaleFactor; | 
|  | BYTE NodeName[32]; | 
|  | WINBOOL PModeSupported; | 
|  | BYTE Comment[ADAPTER_COMMENT_LENGTH]; | 
|  | } NETWORKINFO; | 
|  |  | 
|  | typedef NETWORKINFO *LPNETWORKINFO; | 
|  |  | 
|  | #define NETWORKINFO_SIZE sizeof(NETWORKINFO) | 
|  | #define MINIMUM_FRAME_SIZE (32) | 
|  | #define MAX_PATTERN_LENGTH (16) | 
|  |  | 
|  | #define PATTERN_MATCH_FLAGS_NOT (0x1) | 
|  | #define PATTERN_MATCH_FLAGS_RESERVED_1 (0x2) | 
|  | #define PATTERN_MATCH_FLAGS_PORT_SPECIFIED (0x8) | 
|  |  | 
|  | #define OFFSET_BASIS_RELATIVE_TO_FRAME (0) | 
|  | #define OFFSET_BASIS_RELATIVE_TO_EFFECTIVE_PROTOCOL (1) | 
|  | #define OFFSET_BASIS_RELATIVE_TO_IPX (2) | 
|  | #define OFFSET_BASIS_RELATIVE_TO_IP (3) | 
|  | #define OFFSET_BASIS_RELATIVE_TO_IP6 (4) | 
|  |  | 
|  | typedef union __MIDL___MIDL_itf_netmon_0000_0001 { | 
|  | BYTE NextHeader; | 
|  | BYTE IPPort; | 
|  | WORD ByteSwappedIPXPort; | 
|  | } GENERIC_PORT; | 
|  |  | 
|  | typedef struct _PATTERNMATCH { | 
|  | DWORD Flags; | 
|  | BYTE OffsetBasis; | 
|  | GENERIC_PORT Port; | 
|  | WORD Offset; | 
|  | WORD Length; | 
|  | BYTE PatternToMatch[16]; | 
|  | } PATTERNMATCH; | 
|  |  | 
|  | typedef PATTERNMATCH *LPPATTERNMATCH; | 
|  |  | 
|  | #define PATTERNMATCH_SIZE (sizeof(PATTERNMATCH)) | 
|  |  | 
|  | #define MAX_PATTERNS (4) | 
|  |  | 
|  | typedef struct _ANDEXP { | 
|  | DWORD nPatternMatches; | 
|  | PATTERNMATCH PatternMatch[4]; | 
|  | } ANDEXP; | 
|  |  | 
|  | typedef ANDEXP *LPANDEXP; | 
|  |  | 
|  | #define ANDEXP_SIZE (sizeof(ANDEXP)) | 
|  |  | 
|  | typedef struct _EXPRESSION { | 
|  | DWORD nAndExps; | 
|  | ANDEXP AndExp[4]; | 
|  | } EXPRESSION; | 
|  |  | 
|  | typedef EXPRESSION *LPEXPRESSION; | 
|  |  | 
|  | #define EXPRESSION_SIZE (sizeof(EXPRESSION)) | 
|  |  | 
|  | #define TRIGGER_TYPE_PATTERN_MATCH (1) | 
|  | #define TRIGGER_TYPE_BUFFER_CONTENT (2) | 
|  | #define TRIGGER_TYPE_PATTERN_MATCH_THEN_BUFFER_CONTENT (3) | 
|  | #define TRIGGER_TYPE_BUFFER_CONTENT_THEN_PATTERN_MATCH (4) | 
|  |  | 
|  | #define TRIGGER_FLAGS_FRAME_RELATIVE (0) | 
|  | #define TRIGGER_FLAGS_DATA_RELATIVE (0x1) | 
|  |  | 
|  | #define TRIGGER_ACTION_NOTIFY (0) | 
|  | #define TRIGGER_ACTION_STOP (0x2) | 
|  | #define TRIGGER_ACTION_PAUSE (0x3) | 
|  |  | 
|  | #define TRIGGER_BUFFER_FULL_25_PERCENT (0) | 
|  | #define TRIGGER_BUFFER_FULL_50_PERCENT (1) | 
|  | #define TRIGGER_BUFFER_FULL_75_PERCENT (2) | 
|  | #define TRIGGER_BUFFER_FULL_100_PERCENT (3) | 
|  |  | 
|  | typedef struct _TRIGGER { | 
|  | WINBOOL TriggerActive; | 
|  | BYTE TriggerType; | 
|  | BYTE TriggerAction; | 
|  | DWORD TriggerFlags; | 
|  | PATTERNMATCH TriggerPatternMatch; | 
|  | DWORD TriggerBufferSize; | 
|  | DWORD TriggerReserved; | 
|  | char TriggerCommandLine[260]; | 
|  | } TRIGGER; | 
|  |  | 
|  | typedef TRIGGER *LPTRIGGER; | 
|  |  | 
|  | #define TRIGGER_SIZE (sizeof(TRIGGER)) | 
|  |  | 
|  | #define CAPTUREFILTER_FLAGS_INCLUDE_ALL_SAPS (0x1) | 
|  | #define CAPTUREFILTER_FLAGS_INCLUDE_ALL_ETYPES (0x2) | 
|  | #define CAPTUREFILTER_FLAGS_TRIGGER (0x4) | 
|  | #define CAPTUREFILTER_FLAGS_LOCAL_ONLY (0x8) | 
|  | #define CAPTUREFILTER_FLAGS_DISCARD_COMMENTS (0x10) | 
|  | #define CAPTUREFILTER_FLAGS_KEEP_RAW (0x20) | 
|  | #define CAPTUREFILTER_FLAGS_INCLUDE_ALL (0x3) | 
|  |  | 
|  | #define BUFFER_FULL_25_PERCENT (0) | 
|  | #define BUFFER_FULL_50_PERCENT (1) | 
|  | #define BUFFER_FULL_75_PERCENT (2) | 
|  | #define BUFFER_FULL_100_PERCENT (3) | 
|  |  | 
|  | typedef struct _CAPTUREFILTER { | 
|  | DWORD FilterFlags; | 
|  | LPBYTE lpSapTable; | 
|  | LPWORD lpEtypeTable; | 
|  | WORD nSaps; | 
|  | WORD nEtypes; | 
|  | LPADDRESSTABLE2 AddressTable; | 
|  | EXPRESSION FilterExpression; | 
|  | TRIGGER Trigger; | 
|  | DWORD nFrameBytesToCopy; | 
|  | DWORD Reserved; | 
|  |  | 
|  | } CAPTUREFILTER; | 
|  |  | 
|  | typedef CAPTUREFILTER *LPCAPTUREFILTER; | 
|  |  | 
|  | #define CAPTUREFILTER_SIZE sizeof(CAPTUREFILTER) | 
|  |  | 
|  | typedef struct _FRAME { | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD FrameLength; | 
|  | DWORD nBytesAvail; | 
|  | BYTE MacFrame[1]; | 
|  | } FRAME; | 
|  |  | 
|  | typedef FRAME *LPFRAME; | 
|  |  | 
|  | typedef FRAME UNALIGNED *ULPFRAME; | 
|  | #define FRAME_SIZE (sizeof(FRAME)) | 
|  |  | 
|  | #define LOW_PROTOCOL_IPX (OFFSET_BASIS_RELATIVE_TO_IPX) | 
|  |  | 
|  | #define LOW_PROTOCOL_IP (OFFSET_BASIS_RELATIVE_TO_IP) | 
|  | #define LOW_PROTOCOL_IP6 (OFFSET_BASIS_RELATIVE_TO_IP6) | 
|  | #define LOW_PROTOCOL_UNKNOWN ((BYTE)-1) | 
|  |  | 
|  | typedef struct _FRAME_DESCRIPTOR { | 
|  | LPBYTE FramePointer; | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD FrameLength; | 
|  | DWORD nBytesAvail; | 
|  | WORD Etype; | 
|  | BYTE Sap; | 
|  | BYTE LowProtocol; | 
|  | WORD LowProtocolOffset; | 
|  | union { | 
|  | WORD Reserved; | 
|  | BYTE IPPort; | 
|  | WORD ByteSwappedIPXPort; | 
|  | } HighPort; | 
|  | WORD HighProtocolOffset; | 
|  | } FRAME_DESCRIPTOR; | 
|  |  | 
|  | typedef FRAME_DESCRIPTOR *LPFRAME_DESCRIPTOR; | 
|  |  | 
|  | #define FRAME_DESCRIPTOR_SIZE (sizeof(FRAME_DESCRIPTOR)) | 
|  |  | 
|  | typedef struct _FRAMETABLE { | 
|  | DWORD FrameTableLength; | 
|  | DWORD StartIndex; | 
|  | DWORD EndIndex; | 
|  | DWORD FrameCount; | 
|  | FRAME_DESCRIPTOR Frames[1]; | 
|  | } FRAMETABLE; | 
|  |  | 
|  | typedef FRAMETABLE *LPFRAMETABLE; | 
|  |  | 
|  | #define STATIONSTATS_FLAGS_INITIALIZED (0x1) | 
|  | #define STATIONSTATS_FLAGS_EVENTPOSTED (0x2) | 
|  |  | 
|  | #define STATIONSTATS_POOL_SIZE (100) | 
|  |  | 
|  | typedef struct _STATIONSTATS { | 
|  | DWORD NextStationStats; | 
|  | DWORD SessionPartnerList; | 
|  | DWORD Flags; | 
|  | BYTE StationAddress[6]; | 
|  | WORD Pad; | 
|  | DWORD TotalPacketsReceived; | 
|  | DWORD TotalDirectedPacketsSent; | 
|  | DWORD TotalBroadcastPacketsSent; | 
|  | DWORD TotalMulticastPacketsSent; | 
|  | DWORD TotalBytesReceived; | 
|  | DWORD TotalBytesSent; | 
|  | } STATIONSTATS; | 
|  |  | 
|  | typedef STATIONSTATS *LPSTATIONSTATS; | 
|  |  | 
|  | #define STATIONSTATS_SIZE (sizeof(STATIONSTATS)) | 
|  |  | 
|  | #define SESSION_FLAGS_INITIALIZED (0x1) | 
|  | #define SESSION_FLAGS_EVENTPOSTED (0x2) | 
|  |  | 
|  | #define SESSION_POOL_SIZE (100) | 
|  |  | 
|  | typedef struct _SESSIONSTATS { | 
|  | DWORD NextSession; | 
|  | DWORD StationOwner; | 
|  | DWORD StationPartner; | 
|  | DWORD Flags; | 
|  | DWORD TotalPacketsSent; | 
|  | } SESSIONSTATS; | 
|  |  | 
|  | typedef SESSIONSTATS *LPSESSIONSTATS; | 
|  |  | 
|  | #define SESSIONSTATS_SIZE (sizeof(SESSIONSTATS)) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  | typedef struct _STATIONQUERY { | 
|  | DWORD Flags; | 
|  | BYTE BCDVerMinor; | 
|  | BYTE BCDVerMajor; | 
|  | DWORD LicenseNumber; | 
|  | BYTE MachineName[16]; | 
|  | BYTE UserName[32]; | 
|  | BYTE Reserved[32]; | 
|  | BYTE AdapterAddress[6]; | 
|  | WCHAR WMachineName[16]; | 
|  | WCHAR WUserName[32]; | 
|  | } STATIONQUERY; | 
|  |  | 
|  | typedef STATIONQUERY *LPSTATIONQUERY; | 
|  |  | 
|  | #define STATIONQUERY_SIZE (sizeof(STATIONQUERY)) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | typedef struct _QUERYTABLE { | 
|  | DWORD nStationQueries; | 
|  | STATIONQUERY StationQuery[1]; | 
|  | } QUERYTABLE; | 
|  |  | 
|  | typedef QUERYTABLE *LPQUERYTABLE; | 
|  |  | 
|  | #define QUERYTABLE_SIZE (sizeof(QUERYTABLE)) | 
|  |  | 
|  | typedef struct _LINK *LPLINK; | 
|  |  | 
|  | typedef struct _LINK { | 
|  | LPLINK PrevLink; | 
|  | LPLINK NextLink; | 
|  | } LINK; | 
|  |  | 
|  | #pragma pack(push,1) | 
|  | #define MAX_SECURITY_BREACH_REASON_SIZE (100) | 
|  |  | 
|  | #define MAX_SIGNATURE_LENGTH (128) | 
|  | #define MAX_USER_NAME_LENGTH (256) | 
|  |  | 
|  | typedef struct _SECURITY_PERMISSION_RESPONSE { | 
|  | UINT Version; | 
|  | DWORD RandomNumber; | 
|  | BYTE MachineName[16]; | 
|  | BYTE Address[6]; | 
|  | BYTE UserName[256]; | 
|  | BYTE Reason[100]; | 
|  | DWORD SignatureLength; | 
|  | BYTE Signature[128]; | 
|  | } SECURITY_PERMISSION_RESPONSE; | 
|  |  | 
|  | typedef SECURITY_PERMISSION_RESPONSE *LPSECURITY_PERMISSION_RESPONSE; | 
|  | typedef SECURITY_PERMISSION_RESPONSE UNALIGNED *ULPSECURITY_PERMISSION_RESPONSE; | 
|  |  | 
|  | #define SECURITY_PERMISSION_RESPONSE_SIZE (sizeof(SECURITY_PERMISSION_RESPONSE)) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #define UPDATE_EVENT_TERMINATE_THREAD (0) | 
|  | #define UPDATE_EVENT_NETWORK_STATUS (0x1) | 
|  | #define UPDATE_EVENT_RTC_INTERVAL_ELAPSED (0x2) | 
|  | #define UPDATE_EVENT_RTC_FRAME_TABLE_FULL (0x3) | 
|  | #define UPDATE_EVENT_RTC_BUFFER_FULL (0x4) | 
|  | #define UPDATE_EVENT_TRIGGER_BUFFER_CONTENT (0x5) | 
|  | #define UPDATE_EVENT_TRIGGER_PATTERN_MATCH (0x6) | 
|  | #define UPDATE_EVENT_TRIGGER_BUFFER_PATTERN (0x7) | 
|  | #define UPDATE_EVENT_TRIGGER_PATTERN_BUFFER (0x8) | 
|  | #define UPDATE_EVENT_TRANSMIT_STATUS (0x9) | 
|  | #define UPDATE_EVENT_SECURITY_BREACH (0xa) | 
|  | #define UPDATE_EVENT_REMOTE_FAILURE (0xb) | 
|  |  | 
|  | #define UPDATE_ACTION_TERMINATE_THREAD (0) | 
|  | #define UPDATE_ACTION_NOTIFY (0x1) | 
|  | #define UPDATE_ACTION_STOP_CAPTURE (0x2) | 
|  | #define UPDATE_ACTION_PAUSE_CAPTURE (0x3) | 
|  | #define UPDATE_ACTION_RTC_BUFFER_SWITCH (0x4) | 
|  |  | 
|  | __C89_NAMELESS typedef struct _UPDATE_EVENT { | 
|  | USHORT Event; | 
|  | DWORD Action; | 
|  | DWORD Status; | 
|  | DWORD Value; | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD_PTR lpUserContext; | 
|  | DWORD_PTR lpReserved; | 
|  | UINT FramesDropped; | 
|  | __C89_NAMELESS union { | 
|  | DWORD Reserved; | 
|  | LPFRAMETABLE lpFrameTable; | 
|  | DWORD_PTR lpPacketQueue; | 
|  | SECURITY_PERMISSION_RESPONSE SecurityResponse; | 
|  | }; | 
|  | LPSTATISTICS lpFinalStats; | 
|  | } UPDATE_EVENT; | 
|  |  | 
|  | typedef UPDATE_EVENT *PUPDATE_EVENT; | 
|  | typedef DWORD (WINAPI *LPNETWORKCALLBACKPROC)(UPDATE_EVENT); | 
|  |  | 
|  | typedef struct _NETWORKSTATUS { | 
|  | DWORD State; | 
|  | DWORD Flags; | 
|  | } NETWORKSTATUS; | 
|  |  | 
|  | typedef NETWORKSTATUS *LPNETWORKSTATUS; | 
|  |  | 
|  | #define NETWORKSTATUS_SIZE (sizeof(NETWORKSTATUS)) | 
|  |  | 
|  | #define NETWORKSTATUS_STATE_VOID (0) | 
|  | #define NETWORKSTATUS_STATE_INIT (1) | 
|  | #define NETWORKSTATUS_STATE_CAPTURING (2) | 
|  | #define NETWORKSTATUS_STATE_PAUSED (3) | 
|  |  | 
|  | #define NETWORKSTATUS_FLAGS_TRIGGER_PENDING (0x1) | 
|  |  | 
|  | #define MAKE_WORD(l,h) (((WORD) (l)) | (((WORD) (h)) << 8)) | 
|  | #define MAKE_LONG(l,h) (((DWORD) (l)) | (((DWORD) (h)) << 16)) | 
|  | #define MAKE_SIG(a,b,c,d) MAKE_LONG(MAKE_WORD(a,b),MAKE_WORD(c,d)) | 
|  |  | 
|  | #define MAX_SESSIONS (100) | 
|  | #define MAX_STATIONS (100) | 
|  |  | 
|  | typedef struct _STATISTICSPARAM { | 
|  | DWORD StatisticsSize; | 
|  | STATISTICS Statistics; | 
|  | DWORD StatisticsTableEntries; | 
|  | STATIONSTATS StatisticsTable[100]; | 
|  | DWORD SessionTableEntries; | 
|  | SESSIONSTATS SessionTable[100]; | 
|  | } STATISTICSPARAM; | 
|  |  | 
|  | typedef STATISTICSPARAM *LPSTATISTICSPARAM; | 
|  |  | 
|  | #define STATISTICSPARAM_SIZE (sizeof(STATISTICSPARAM)) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  | #define CAPTUREFILE_VERSION_MAJOR (2) | 
|  |  | 
|  | #define CAPTUREFILE_VERSION_MINOR (0) | 
|  |  | 
|  | #define MakeVersion(Major,Minor) ((DWORD) MAKEWORD(Minor,Major)) | 
|  | #define GetCurrentVersion() MakeVersion(CAPTUREFILE_VERSION_MAJOR,CAPTUREFILE_VERSION_MINOR) | 
|  | #define NETMON_1_0_CAPTUREFILE_SIGNATURE MAKE_IDENTIFIER('R','T','S','S') | 
|  | #define NETMON_2_0_CAPTUREFILE_SIGNATURE MAKE_IDENTIFIER('G','M','B','U') | 
|  |  | 
|  | typedef struct _CAPTUREFILE_HEADER_VALUES { | 
|  | DWORD Signature; | 
|  | BYTE BCDVerMinor; | 
|  | BYTE BCDVerMajor; | 
|  | WORD MacType; | 
|  | SYSTEMTIME TimeStamp; | 
|  | DWORD FrameTableOffset; | 
|  | DWORD FrameTableLength; | 
|  | DWORD UserDataOffset; | 
|  | DWORD UserDataLength; | 
|  | DWORD CommentDataOffset; | 
|  | DWORD CommentDataLength; | 
|  | DWORD StatisticsOffset; | 
|  | DWORD StatisticsLength; | 
|  | DWORD NetworkInfoOffset; | 
|  | DWORD NetworkInfoLength; | 
|  | DWORD ConversationStatsOffset; | 
|  | DWORD ConversationStatsLength; | 
|  | } CAPTUREFILE_HEADER_VALUES; | 
|  |  | 
|  | typedef CAPTUREFILE_HEADER_VALUES *LPCAPTUREFILE_HEADER_VALUES; | 
|  |  | 
|  | #define CAPTUREFILE_HEADER_VALUES_SIZE (sizeof(CAPTUREFILE_HEADER_VALUES)) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  | typedef struct _CAPTUREFILE_HEADER { | 
|  | __C89_NAMELESS union { | 
|  | CAPTUREFILE_HEADER_VALUES ActualHeader; | 
|  | BYTE Buffer[72]; | 
|  | }; | 
|  | BYTE Reserved[56]; | 
|  | } CAPTUREFILE_HEADER; | 
|  |  | 
|  | typedef CAPTUREFILE_HEADER *LPCAPTUREFILE_HEADER; | 
|  |  | 
|  | #define CAPTUREFILE_HEADER_SIZE (sizeof(CAPTUREFILE_HEADER)) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  | typedef struct _EFRAMEHDR { | 
|  | BYTE SrcAddress[6]; | 
|  | BYTE DstAddress[6]; | 
|  | WORD Length; | 
|  | BYTE DSAP; | 
|  | BYTE SSAP; | 
|  | BYTE Control; | 
|  | BYTE ProtocolID[3]; | 
|  | WORD EtherType; | 
|  | } EFRAMEHDR; | 
|  |  | 
|  | typedef struct _TRFRAMEHDR { | 
|  | BYTE AC; | 
|  | BYTE FC; | 
|  | BYTE SrcAddress[6]; | 
|  | BYTE DstAddress[6]; | 
|  | BYTE DSAP; | 
|  | BYTE SSAP; | 
|  | BYTE Control; | 
|  | BYTE ProtocolID[3]; | 
|  | WORD EtherType; | 
|  | } TRFRAMEHDR; | 
|  |  | 
|  | #define DEFAULT_TR_AC (0) | 
|  |  | 
|  | #define DEFAULT_TR_FC (0x40) | 
|  | #define DEFAULT_SAP (0xaa) | 
|  |  | 
|  | #define DEFAULT_CONTROL (0x3) | 
|  |  | 
|  | #define DEFAULT_ETHERTYPE (0x8419) | 
|  |  | 
|  | typedef struct _FDDIFRAMEHDR { | 
|  | BYTE FC; | 
|  | BYTE SrcAddress[6]; | 
|  | BYTE DstAddress[6]; | 
|  | BYTE DSAP; | 
|  | BYTE SSAP; | 
|  | BYTE Control; | 
|  | BYTE ProtocolID[3]; | 
|  | WORD EtherType; | 
|  | } FDDIFRAMEHDR; | 
|  |  | 
|  | #define DEFAULT_FDDI_FC (0x10) | 
|  |  | 
|  | typedef struct _FDDISTATFRAME { | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD FrameLength; | 
|  | DWORD nBytesAvail; | 
|  | FDDIFRAMEHDR FrameHeader; | 
|  | BYTE FrameID[4]; | 
|  | DWORD Flags; | 
|  | DWORD FrameType; | 
|  | WORD StatsDataLen; | 
|  | DWORD StatsVersion; | 
|  | STATISTICS Statistics; | 
|  | } FDDISTATFRAME; | 
|  |  | 
|  | typedef FDDISTATFRAME *LPFDDISTATFRAME; | 
|  |  | 
|  | typedef FDDISTATFRAME UNALIGNED *ULPFDDISTATFRAME; | 
|  | #define FDDISTATFRAME_SIZE (sizeof(FDDISTATFRAME)) | 
|  |  | 
|  | typedef struct _ATMFRAMEHDR { | 
|  | BYTE SrcAddress[6]; | 
|  | BYTE DstAddress[6]; | 
|  | WORD Vpi; | 
|  | WORD Vci; | 
|  | } ATMFRAMEHDR; | 
|  |  | 
|  | typedef struct _ATMSTATFRAME { | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD FrameLength; | 
|  | DWORD nBytesAvail; | 
|  | ATMFRAMEHDR FrameHeader; | 
|  | BYTE FrameID[4]; | 
|  | DWORD Flags; | 
|  | DWORD FrameType; | 
|  | WORD StatsDataLen; | 
|  | DWORD StatsVersion; | 
|  | STATISTICS Statistics; | 
|  | } ATMSTATFRAME; | 
|  |  | 
|  | typedef ATMSTATFRAME *LPATMSTATFRAME; | 
|  | typedef ATMSTATFRAME UNALIGNED *ULPATMSTATFRAME; | 
|  |  | 
|  | #define ATMSTATFRAME_SIZE (sizeof(ATMSTATFRAME)) | 
|  |  | 
|  | typedef struct _TRSTATFRAME { | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD FrameLength; | 
|  | DWORD nBytesAvail; | 
|  | TRFRAMEHDR FrameHeader; | 
|  | BYTE FrameID[4]; | 
|  | DWORD Flags; | 
|  | DWORD FrameType; | 
|  | WORD StatsDataLen; | 
|  | DWORD StatsVersion; | 
|  | STATISTICS Statistics; | 
|  | } TRSTATFRAME; | 
|  |  | 
|  | typedef TRSTATFRAME *LPTRSTATFRAME; | 
|  | typedef TRSTATFRAME UNALIGNED *ULPTRSTATFRAME; | 
|  |  | 
|  | #define TRSTATFRAME_SIZE (sizeof(TRSTATFRAME)) | 
|  |  | 
|  | typedef struct _ESTATFRAME { | 
|  | __MINGW_EXTENSION __int64 TimeStamp; | 
|  | DWORD FrameLength; | 
|  | DWORD nBytesAvail; | 
|  | EFRAMEHDR FrameHeader; | 
|  | BYTE FrameID[4]; | 
|  | DWORD Flags; | 
|  | DWORD FrameType; | 
|  | WORD StatsDataLen; | 
|  | DWORD StatsVersion; | 
|  | STATISTICS Statistics; | 
|  | } ESTATFRAME; | 
|  |  | 
|  | typedef ESTATFRAME *LPESTATFRAME; | 
|  | typedef ESTATFRAME UNALIGNED *ULPESTATFRAME; | 
|  |  | 
|  | #define ESTATFRAME_SIZE (sizeof(ESTATFRAME)) | 
|  |  | 
|  | #define STATISTICS_VERSION_1_0 (0) | 
|  | #define STATISTICS_VERSION_2_0 (0x20) | 
|  | #define MAX_STATSFRAME_SIZE (sizeof(TRSTATFRAME)) | 
|  | #define STATS_FRAME_TYPE (103) | 
|  |  | 
|  | #pragma pack(pop) | 
|  | #pragma pack(push,1) | 
|  |  | 
|  | typedef struct _ADDRESS { | 
|  | DWORD Type; | 
|  | __C89_NAMELESS union { | 
|  | BYTE MACAddress[MAC_ADDRESS_SIZE]; | 
|  | BYTE IPAddress[IP_ADDRESS_SIZE]; | 
|  | BYTE IPXRawAddress[IPX_ADDR_SIZE]; | 
|  | IPX_ADDR IPXAddress; | 
|  | BYTE VinesIPRawAddress[VINES_IP_ADDRESS_SIZE]; | 
|  | VINES_IP_ADDRESS VinesIPAddress; | 
|  | ETHERNET_SRC_ADDRESS EthernetSrcAddress; | 
|  | ETHERNET_DST_ADDRESS EthernetDstAddress; | 
|  | TOKENRING_SRC_ADDRESS TokenringSrcAddress; | 
|  | TOKENRING_DST_ADDRESS TokenringDstAddress; | 
|  | FDDI_SRC_ADDRESS FddiSrcAddress; | 
|  | FDDI_DST_ADDRESS FddiDstAddress; | 
|  | }; | 
|  | WORD Flags; | 
|  | } ADDRESS; | 
|  |  | 
|  | typedef ADDRESS *LPADDRESS; | 
|  | #define ADDRESS_SIZE sizeof(ADDRESS) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | typedef struct _ADDRESSPAIR { | 
|  | WORD AddressFlags; | 
|  | WORD NalReserved; | 
|  | ADDRESS DstAddress; | 
|  | ADDRESS SrcAddress; | 
|  |  | 
|  | } ADDRESSPAIR; | 
|  |  | 
|  | typedef ADDRESSPAIR *LPADDRESSPAIR; | 
|  |  | 
|  | #define ADDRESSPAIR_SIZE sizeof(ADDRESSPAIR) | 
|  |  | 
|  | typedef struct _ADDRESSTABLE { | 
|  | DWORD nAddressPairs; | 
|  | DWORD nNonMacAddressPairs; | 
|  | ADDRESSPAIR AddressPair[MAX_ADDRESS_PAIRS]; | 
|  |  | 
|  | } ADDRESSTABLE; | 
|  |  | 
|  | typedef ADDRESSTABLE *LPADDRESSTABLE; | 
|  |  | 
|  | #define ADDRESSTABLE_SIZE sizeof(ADDRESSTABLE) | 
|  |  | 
|  | typedef struct _ADDRESSINFO { | 
|  | ADDRESS Address; | 
|  | WCHAR Name[MAX_NAME_SIZE]; | 
|  | DWORD Flags; | 
|  | LPVOID lpAddressInstData; | 
|  | } ADDRESSINFO; | 
|  |  | 
|  | typedef struct _ADDRESSINFO *LPADDRESSINFO; | 
|  |  | 
|  | #define ADDRESSINFO_SIZE sizeof(ADDRESSINFO) | 
|  |  | 
|  | typedef struct _ADDRESSINFOTABLE { | 
|  | DWORD nAddressInfos; | 
|  | LPADDRESSINFO lpAddressInfo[0]; | 
|  | } ADDRESSINFOTABLE; | 
|  |  | 
|  | typedef ADDRESSINFOTABLE *LPADDRESSINFOTABLE; | 
|  |  | 
|  | #define ADDRESSINFOTABLE_SIZE sizeof(ADDRESSINFOTABLE) | 
|  |  | 
|  | DWORD __cdecl SetNPPAddressFilterInBlob(HBLOB hBlob,LPADDRESSTABLE pAddressTable); | 
|  | DWORD __cdecl GetNPPAddressFilterFromBlob(HBLOB hBlob,LPADDRESSTABLE pAddressTable,HBLOB hErrorBlob); | 
|  |  | 
|  | #pragma pack(push,8) | 
|  |  | 
|  | typedef enum __MIDL___MIDL_itf_netmon_0000_0005 { | 
|  | NMCOLUMNTYPE_UINT8 = 0, | 
|  | NMCOLUMNTYPE_SINT8,NMCOLUMNTYPE_UINT16,NMCOLUMNTYPE_SINT16,NMCOLUMNTYPE_UINT32,NMCOLUMNTYPE_SINT32, | 
|  | NMCOLUMNTYPE_FLOAT64,NMCOLUMNTYPE_FRAME,NMCOLUMNTYPE_YESNO,NMCOLUMNTYPE_ONOFF,NMCOLUMNTYPE_TRUEFALSE, | 
|  | NMCOLUMNTYPE_MACADDR,NMCOLUMNTYPE_IPXADDR,NMCOLUMNTYPE_IPADDR,NMCOLUMNTYPE_VARTIME,NMCOLUMNTYPE_STRING | 
|  | } NMCOLUMNTYPE; | 
|  |  | 
|  | typedef struct _NMCOLUMNVARIANT { | 
|  | NMCOLUMNTYPE Type; | 
|  | union { | 
|  | BYTE Uint8Val; | 
|  | char Sint8Val; | 
|  | WORD Uint16Val; | 
|  | short Sint16Val; | 
|  | DWORD Uint32Val; | 
|  | __LONG32 Sint32Val; | 
|  | DOUBLE Float64Val; | 
|  | DWORD FrameVal; | 
|  | WINBOOL YesNoVal; | 
|  | WINBOOL OnOffVal; | 
|  | WINBOOL TrueFalseVal; | 
|  | BYTE MACAddrVal[6]; | 
|  | IPX_ADDR IPXAddrVal; | 
|  | DWORD IPAddrVal; | 
|  | DOUBLE VarTimeVal; | 
|  | LPCSTR pStringVal; | 
|  | } Value; | 
|  | } NMCOLUMNVARIANT; | 
|  |  | 
|  | typedef struct _NMCOLUMNINFO { | 
|  | LPSTR szColumnName; | 
|  | NMCOLUMNVARIANT VariantData; | 
|  | } NMCOLUMNINFO; | 
|  |  | 
|  | typedef NMCOLUMNINFO *PNMCOLUMNINFO; | 
|  | typedef LPSTR JTYPE; | 
|  |  | 
|  | typedef struct _NMEVENTDATA { | 
|  | LPSTR pszReserved; | 
|  | BYTE Version; | 
|  | DWORD EventIdent; | 
|  | DWORD Flags; | 
|  | DWORD Severity; | 
|  | BYTE NumColumns; | 
|  | LPSTR szSourceName; | 
|  | LPSTR szEventName; | 
|  | LPSTR szDescription; | 
|  | LPSTR szMachine; | 
|  | JTYPE Justification; | 
|  | PVOID pvReserved; | 
|  | SYSTEMTIME SysTime; | 
|  | NMCOLUMNINFO Column[0]; | 
|  | } NMEVENTDATA; | 
|  |  | 
|  | typedef NMEVENTDATA *PNMEVENTDATA; | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #define NMEVENTFLAG_EXPERT (0x1) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_SEVERITY (0x80000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_SOURCE (0x40000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_EVENT_NAME (0x20000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_DESCRIPTION (0x10000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_MACHINE (0x8000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_TIME (0x4000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_DATE (0x2000000) | 
|  | #define NMEVENTFLAG_DO_NOT_DISPLAY_FIXED_COLUMNS (0xfe000000) | 
|  |  | 
|  | enum _NMEVENT_SEVERITIES { | 
|  | NMEVENT_SEVERITY_INFORMATIONAL = 0,NMEVENT_SEVERITY_WARNING, | 
|  | NMEVENT_SEVERITY_STRONG_WARNING,NMEVENT_SEVERITY_ERROR, | 
|  | NMEVENT_SEVERITY_SEVERE_ERROR,NMEVENT_SEVERITY_CRITICAL_ERROR | 
|  | }; | 
|  |  | 
|  | typedef struct __MIDL___MIDL_itf_netmon_0000_0007 { | 
|  | DWORD dwNumBlobs; | 
|  | HBLOB hBlobs[1]; | 
|  | } BLOB_TABLE; | 
|  |  | 
|  | typedef BLOB_TABLE *PBLOB_TABLE; | 
|  |  | 
|  | typedef struct __MIDL___MIDL_itf_netmon_0000_0008 { | 
|  | DWORD size; | 
|  | BYTE *pBytes; | 
|  | } MBLOB; | 
|  |  | 
|  | typedef struct __MIDL___MIDL_itf_netmon_0000_0009 { | 
|  | DWORD dwNumBlobs; | 
|  | MBLOB mBlobs[1]; | 
|  | } MBLOB_TABLE; | 
|  |  | 
|  | typedef MBLOB_TABLE *PMBLOB_TABLE; | 
|  |  | 
|  | DWORD __cdecl GetNPPBlobTable(HBLOB hFilterBlob,PBLOB_TABLE *ppBlobTable); | 
|  | DWORD __cdecl GetNPPBlobFromUI(HWND hwnd,HBLOB hFilterBlob,HBLOB *phBlob); | 
|  | DWORD __cdecl GetNPPBlobFromUIExU(HWND hwnd,HBLOB hFilterBlob,HBLOB *phBlob,char *szHelpFileName); | 
|  | DWORD __cdecl SelectNPPBlobFromTable(HWND hwnd,PBLOB_TABLE pBlobTable,HBLOB *hBlob); | 
|  | DWORD __cdecl SelectNPPBlobFromTableExU(HWND hwnd,PBLOB_TABLE pBlobTable,HBLOB *hBlob,char *szHelpFileName); | 
|  |  | 
|  | static __inline DWORD BLOB_TABLE_SIZE(DWORD dwNumBlobs) { return (DWORD) (sizeof(BLOB_TABLE)+dwNumBlobs*sizeof(HBLOB)); } | 
|  | static __inline PBLOB_TABLE AllocBlobTable(DWORD dwNumBlobs) { | 
|  | DWORD size = BLOB_TABLE_SIZE(dwNumBlobs); | 
|  | return (PBLOB_TABLE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size); | 
|  | } | 
|  | static __inline DWORD MBLOB_TABLE_SIZE(DWORD dwNumBlobs) { return (DWORD) (sizeof(MBLOB_TABLE)+dwNumBlobs*sizeof(MBLOB)); } | 
|  | static __inline PMBLOB_TABLE AllocMBlobTable(DWORD dwNumBlobs) { | 
|  | DWORD size = MBLOB_TABLE_SIZE(dwNumBlobs); | 
|  | return (PMBLOB_TABLE)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,size); | 
|  | } | 
|  | DWORD __cdecl GetNPPBlobs(PBLOB_TABLE *ppBlobTable); | 
|  |  | 
|  | typedef DWORD (_cdecl *BLOBSPROC) (PBLOB_TABLE *ppBlobTable); | 
|  |  | 
|  | DWORD __cdecl GetConfigBlob(HBLOB *phBlob); | 
|  |  | 
|  | typedef DWORD (_cdecl *GETCFGBLOB)(HBLOB,HBLOB*); | 
|  | typedef DWORD (_cdecl *CFGPROC)(HWND hwnd,HBLOB SpecialBlob,PBLOB_TABLE *ppBlobTable); | 
|  |  | 
|  | WINBOOL __cdecl FilterNPPBlob(HBLOB hBlob,HBLOB FilterBlob); | 
|  | WINBOOL __cdecl RaiseNMEvent(HINSTANCE hInstance,WORD EventType,DWORD EventID,WORD nStrings,const char **aInsertStrs,LPVOID lpvData,DWORD dwDataSize); | 
|  |  | 
|  | #ifndef __cplusplus | 
|  | #ifndef try | 
|  | #define try __try | 
|  | #endif | 
|  |  | 
|  | #ifndef except | 
|  | #define except __except | 
|  | #endif | 
|  | #endif | 
|  |  | 
|  | #define WINDOWS_VERSION_UNKNOWN (0) | 
|  | #define WINDOWS_VERSION_WIN32S (1) | 
|  | #define WINDOWS_VERSION_WIN32C (2) | 
|  | #define WINDOWS_VERSION_WIN32 (3) | 
|  |  | 
|  | #define FRAME_MASK_ETHERNET ((BYTE)~0x1) | 
|  | #define FRAME_MASK_TOKENRING ((BYTE)~0x80) | 
|  | #define FRAME_MASK_FDDI ((BYTE)~0x1) | 
|  |  | 
|  | typedef LPVOID HOBJECTHEAP; | 
|  | typedef VOID (WINAPI *OBJECTPROC)(HOBJECTHEAP,LPVOID); | 
|  | typedef struct _TIMER *HTIMER; | 
|  | typedef VOID (WINAPI *BHTIMERPROC)(LPVOID); | 
|  |  | 
|  | HTIMER WINAPI BhSetTimer(BHTIMERPROC TimerProc,LPVOID InstData,DWORD TimeOut); | 
|  | VOID WINAPI BhKillTimer(HTIMER hTimer); | 
|  | DWORD WINAPI BhGetLastError(VOID); | 
|  | DWORD WINAPI BhSetLastError(DWORD Error); | 
|  | HOBJECTHEAP WINAPI CreateObjectHeap(DWORD ObjectSize,OBJECTPROC ObjectProc); | 
|  | HOBJECTHEAP WINAPI DestroyObjectHeap(HOBJECTHEAP hObjectHeap); | 
|  | LPVOID WINAPI AllocObject(HOBJECTHEAP hObjectHeap); | 
|  | LPVOID WINAPI FreeObject(HOBJECTHEAP hObjectHeap,LPVOID ObjectMemory); | 
|  | DWORD WINAPI GrowObjectHeap(HOBJECTHEAP hObjectHeap,DWORD nObjects); | 
|  | DWORD WINAPI GetObjectHeapSize(HOBJECTHEAP hObjectHeap); | 
|  | VOID WINAPI PurgeObjectHeap(HOBJECTHEAP hObjectHeap); | 
|  | LPVOID WINAPI AllocMemory(SIZE_T size); | 
|  | LPVOID WINAPI ReallocMemory(LPVOID ptr,SIZE_T NewSize); | 
|  | VOID WINAPI FreeMemory(LPVOID ptr); | 
|  | VOID WINAPI TestMemory(LPVOID ptr); | 
|  | SIZE_T WINAPI MemorySize(LPVOID ptr); | 
|  | HANDLE WINAPI MemoryHandle(LPBYTE ptr); | 
|  | LPEXPRESSION WINAPI InitializeExpression(LPEXPRESSION Expression); | 
|  | LPPATTERNMATCH WINAPI InitializePattern(LPPATTERNMATCH Pattern,LPVOID ptr,DWORD offset,DWORD length); | 
|  | LPEXPRESSION WINAPI AndExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern); | 
|  | LPEXPRESSION WINAPI OrExpression(LPEXPRESSION Expression,LPPATTERNMATCH Pattern); | 
|  | LPPATTERNMATCH WINAPI NegatePattern(LPPATTERNMATCH Pattern); | 
|  | LPADDRESSTABLE2 WINAPI AdjustOperatorPrecedence(LPADDRESSTABLE2 AddressTable); | 
|  | LPADDRESS2 WINAPI NormalizeAddress(LPADDRESS2 Address); | 
|  | LPADDRESSTABLE2 WINAPI NormalizeAddressTable(LPADDRESSTABLE2 AddressTable); | 
|  | DWORD WINAPI BhGetWindowsVersion(VOID); | 
|  | WINBOOL WINAPI IsDaytona(VOID); | 
|  | VOID __cdecl dprintf(LPSTR format,...); | 
|  |  | 
|  | typedef VOID UNALIGNED *ULPVOID; | 
|  | typedef BYTE UNALIGNED *ULPBYTE; | 
|  | typedef WORD UNALIGNED *ULPWORD; | 
|  | typedef DWORD UNALIGNED *ULPDWORD; | 
|  | typedef CHAR UNALIGNED *ULPSTR; | 
|  | typedef SYSTEMTIME UNALIGNED *ULPSYSTEMTIME; | 
|  | typedef struct _PARSER *HPARSER; | 
|  | typedef struct _CAPFRAMEDESC *HFRAME; | 
|  | typedef struct _CAPTURE *HCAPTURE; | 
|  | typedef struct _FILTER *HFILTER; | 
|  | typedef struct _ADDRESSDB *HADDRESSDB; | 
|  | typedef struct _PROTOCOL *HPROTOCOL; | 
|  | typedef DWORD_PTR HPROPERTY; | 
|  | typedef HPROTOCOL *LPHPROTOCOL; | 
|  |  | 
|  | #define GetTableSize(TableBaseSize,nElements,ElementSize) ((TableBaseSize) + ((nElements) *(ElementSize))) | 
|  |  | 
|  | typedef DWORD OBJECTTYPE; | 
|  |  | 
|  | #ifndef MAKE_IDENTIFIER | 
|  | #define MAKE_IDENTIFIER(a,b,c,d) ((DWORD) MAKELONG(MAKEWORD(a,b),MAKEWORD(c,d))) | 
|  | #endif | 
|  | #define HANDLE_TYPE_INVALID MAKE_IDENTIFIER(-1,-1,-1,-1) | 
|  | #define HANDLE_TYPE_CAPTURE MAKE_IDENTIFIER('C','A','P','$') | 
|  | #define HANDLE_TYPE_PARSER MAKE_IDENTIFIER('P','S','R','$') | 
|  | #define HANDLE_TYPE_ADDRESSDB MAKE_IDENTIFIER('A','D','R','$') | 
|  | #define HANDLE_TYPE_PROTOCOL MAKE_IDENTIFIER('P','R','T','$') | 
|  | #define HANDLE_TYPE_BUFFER MAKE_IDENTIFIER('B','U','F','$') | 
|  |  | 
|  | #define INLINE __inline | 
|  | #define BHAPI WINAPI | 
|  | #define MAX_NAME_LENGTH (16) | 
|  |  | 
|  | #define MAX_ADDR_LENGTH (6) | 
|  |  | 
|  | #define ETYPE_LOOP (0x9000) | 
|  | #define ETYPE_3COM_NETMAP1 (0x9001) | 
|  | #define ETYPE_3COM_NETMAP2 (0x9002) | 
|  | #define ETYPE_IBM_RT (0x80d5) | 
|  | #define ETYPE_NETWARE (0x8137) | 
|  | #define ETYPE_XNS1 (0x600) | 
|  | #define ETYPE_XNS2 (0x807) | 
|  | #define ETYPE_3COM_NBP0 (0x3c00) | 
|  | #define ETYPE_3COM_NBP1 (0x3c01) | 
|  | #define ETYPE_3COM_NBP2 (0x3c02) | 
|  | #define ETYPE_3COM_NBP3 (0x3c03) | 
|  | #define ETYPE_3COM_NBP4 (0x3c04) | 
|  | #define ETYPE_3COM_NBP5 (0x3c05) | 
|  | #define ETYPE_3COM_NBP6 (0x3c06) | 
|  | #define ETYPE_3COM_NBP7 (0x3c07) | 
|  | #define ETYPE_3COM_NBP8 (0x3c08) | 
|  | #define ETYPE_3COM_NBP9 (0x3c09) | 
|  | #define ETYPE_3COM_NBP10 (0x3c0a) | 
|  | #define ETYPE_IP (0x800) | 
|  | #define ETYPE_ARP1 (0x806) | 
|  | #define ETYPE_ARP2 (0x807) | 
|  | #define ETYPE_RARP (0x8035) | 
|  | #define ETYPE_TRLR0 (0x1000) | 
|  | #define ETYPE_TRLR1 (0x1001) | 
|  | #define ETYPE_TRLR2 (0x1002) | 
|  | #define ETYPE_TRLR3 (0x1003) | 
|  | #define ETYPE_TRLR4 (0x1004) | 
|  | #define ETYPE_TRLR5 (0x1005) | 
|  | #define ETYPE_PUP (0x200) | 
|  | #define ETYPE_PUP_ARP (0x201) | 
|  | #define ETYPE_APPLETALK_ARP (0x80f3) | 
|  | #define ETYPE_APPLETALK_LAP (0x809b) | 
|  | #define ETYPE_SNMP (0x814c) | 
|  |  | 
|  | #define SAP_SNAP (0xaa) | 
|  | #define SAP_BPDU (0x42) | 
|  | #define SAP_IBM_NM (0xf4) | 
|  | #define SAP_IBM_NETBIOS (0xf0) | 
|  | #define SAP_SNA1 (0x4) | 
|  | #define SAP_SNA2 (0x5) | 
|  | #define SAP_SNA3 (0x8) | 
|  | #define SAP_SNA4 (0xc) | 
|  | #define SAP_NETWARE1 (0x10) | 
|  | #define SAP_NETWARE2 (0xe0) | 
|  | #define SAP_NETWARE3 (0xfe) | 
|  | #define SAP_IP (0x6) | 
|  | #define SAP_X25 (0x7e) | 
|  | #define SAP_RPL1 (0xf8) | 
|  | #define SAP_RPL2 (0xfc) | 
|  | #define SAP_UB (0xfa) | 
|  | #define SAP_XNS (0x80) | 
|  |  | 
|  | #define PROP_TYPE_VOID (0) | 
|  | #define PROP_TYPE_SUMMARY (0x1) | 
|  | #define PROP_TYPE_BYTE (0x2) | 
|  | #define PROP_TYPE_WORD (0x3) | 
|  | #define PROP_TYPE_DWORD (0x4) | 
|  | #define PROP_TYPE_LARGEINT (0x5) | 
|  | #define PROP_TYPE_ADDR (0x6) | 
|  | #define PROP_TYPE_TIME (0x7) | 
|  | #define PROP_TYPE_STRING (0x8) | 
|  | #define PROP_TYPE_IP_ADDRESS (0x9) | 
|  | #define PROP_TYPE_IPX_ADDRESS (0xa) | 
|  | #define PROP_TYPE_BYTESWAPPED_WORD (0xb) | 
|  | #define PROP_TYPE_BYTESWAPPED_DWORD (0xc) | 
|  | #define PROP_TYPE_TYPED_STRING (0xd) | 
|  | #define PROP_TYPE_RAW_DATA (0xe) | 
|  | #define PROP_TYPE_COMMENT (0xf) | 
|  | #define PROP_TYPE_SRCFRIENDLYNAME (0x10) | 
|  | #define PROP_TYPE_DSTFRIENDLYNAME (0x11) | 
|  | #define PROP_TYPE_TOKENRING_ADDRESS (0x12) | 
|  | #define PROP_TYPE_FDDI_ADDRESS (0x13) | 
|  | #define PROP_TYPE_ETHERNET_ADDRESS (0x14) | 
|  | #define PROP_TYPE_OBJECT_IDENTIFIER (0x15) | 
|  | #define PROP_TYPE_VINES_IP_ADDRESS (0x16) | 
|  | #define PROP_TYPE_VAR_LEN_SMALL_INT (0x17) | 
|  | #define PROP_TYPE_ATM_ADDRESS (0x18) | 
|  | #define PROP_TYPE_1394_ADDRESS (0x19) | 
|  | #define PROP_TYPE_IP6_ADDRESS (0x1a) | 
|  |  | 
|  | #define PROP_QUAL_NONE (0) | 
|  | #define PROP_QUAL_RANGE (0x1) | 
|  | #define PROP_QUAL_SET (0x2) | 
|  | #define PROP_QUAL_BITFIELD (0x3) | 
|  | #define PROP_QUAL_LABELED_SET (0x4) | 
|  | #define PROP_QUAL_LABELED_BITFIELD (0x8) | 
|  | #define PROP_QUAL_CONST (0x9) | 
|  | #define PROP_QUAL_FLAGS (0xa) | 
|  | #define PROP_QUAL_ARRAY (0xb) | 
|  |  | 
|  | typedef LARGE_INTEGER *LPLARGEINT; | 
|  | typedef LARGE_INTEGER UNALIGNED *ULPLARGEINT; | 
|  |  | 
|  | typedef struct _RANGE { | 
|  | DWORD MinValue; | 
|  | DWORD MaxValue; | 
|  | } RANGE; | 
|  |  | 
|  | typedef RANGE *LPRANGE; | 
|  |  | 
|  | typedef struct _LABELED_BYTE { | 
|  | BYTE Value; | 
|  | LPSTR Label; | 
|  | } LABELED_BYTE; | 
|  |  | 
|  | typedef LABELED_BYTE *LPLABELED_BYTE; | 
|  |  | 
|  | typedef struct _LABELED_WORD { | 
|  | WORD Value; | 
|  | LPSTR Label; | 
|  | } LABELED_WORD; | 
|  |  | 
|  | typedef LABELED_WORD *LPLABELED_WORD; | 
|  |  | 
|  | typedef struct _LABELED_DWORD { | 
|  | DWORD Value; | 
|  | LPSTR Label; | 
|  | } LABELED_DWORD; | 
|  |  | 
|  | typedef LABELED_DWORD *LPLABELED_DWORD; | 
|  |  | 
|  | typedef struct _LABELED_LARGEINT { | 
|  | LARGE_INTEGER Value; | 
|  | LPSTR Label; | 
|  | } LABELED_LARGEINT; | 
|  |  | 
|  | typedef LABELED_LARGEINT *LPLABELED_LARGEINT; | 
|  |  | 
|  | typedef struct _LABELED_SYSTEMTIME { | 
|  | SYSTEMTIME Value; | 
|  | LPSTR Label; | 
|  | } LABELED_SYSTEMTIME; | 
|  |  | 
|  | typedef LABELED_SYSTEMTIME *LPLABELED_SYSTEMTIME; | 
|  |  | 
|  | typedef struct _LABELED_BIT { | 
|  | BYTE BitNumber; | 
|  | LPSTR LabelOff; | 
|  | LPSTR LabelOn; | 
|  | } LABELED_BIT; | 
|  |  | 
|  | typedef LABELED_BIT *LPLABELED_BIT; | 
|  |  | 
|  | #define TYPED_STRING_NORMAL (1) | 
|  | #define TYPED_STRING_UNICODE (2) | 
|  |  | 
|  | #define TYPED_STRING_EXFLAG (1) | 
|  |  | 
|  | typedef struct _TYPED_STRING { | 
|  | BYTE StringType:7; | 
|  | BYTE fStringEx:1; | 
|  | LPSTR lpString; | 
|  | BYTE Byte[0]; | 
|  | } TYPED_STRING; | 
|  |  | 
|  | typedef TYPED_STRING *LPTYPED_STRING; | 
|  |  | 
|  | typedef struct _OBJECT_IDENTIFIER { | 
|  | DWORD Length; | 
|  | LPDWORD lpIdentifier; | 
|  | } OBJECT_IDENTIFIER; | 
|  |  | 
|  | typedef OBJECT_IDENTIFIER *LPOBJECT_IDENTIFIER; | 
|  |  | 
|  | typedef struct _SET { | 
|  | DWORD nEntries; | 
|  | __C89_NAMELESS union { | 
|  | LPVOID lpVoidTable; | 
|  | LPBYTE lpByteTable; | 
|  | LPWORD lpWordTable; | 
|  | LPDWORD lpDwordTable; | 
|  | LPLARGEINT lpLargeIntTable; | 
|  | LPSYSTEMTIME lpSystemTimeTable; | 
|  | LPLABELED_BYTE lpLabeledByteTable; | 
|  | LPLABELED_WORD lpLabeledWordTable; | 
|  | LPLABELED_DWORD lpLabeledDwordTable; | 
|  | LPLABELED_LARGEINT lpLabeledLargeIntTable; | 
|  | LPLABELED_SYSTEMTIME lpLabeledSystemTimeTable; | 
|  | LPLABELED_BIT lpLabeledBit; | 
|  | }; | 
|  | } SET; | 
|  |  | 
|  | typedef SET *LPSET; | 
|  |  | 
|  | typedef struct _STRINGTABLE { | 
|  | DWORD nStrings; | 
|  | LPSTR String[0]; | 
|  | } STRINGTABLE; | 
|  |  | 
|  | typedef STRINGTABLE *LPSTRINGTABLE; | 
|  | #define STRINGTABLE_SIZE sizeof(STRINGTABLE) | 
|  |  | 
|  | typedef struct _RECOGNIZEDATA { | 
|  | WORD ProtocolID; | 
|  | WORD nProtocolOffset; | 
|  | LPVOID InstData; | 
|  | } RECOGNIZEDATA; | 
|  |  | 
|  | typedef RECOGNIZEDATA *LPRECOGNIZEDATA; | 
|  |  | 
|  | typedef struct _RECOGNIZEDATATABLE { | 
|  | WORD nRecognizeDatas; | 
|  | RECOGNIZEDATA RecognizeData[0]; | 
|  | } RECOGNIZEDATATABLE; | 
|  |  | 
|  | typedef RECOGNIZEDATATABLE *LPRECOGNIZEDATATABLE; | 
|  |  | 
|  | typedef struct _PROPERTYINFO { | 
|  | HPROPERTY hProperty; | 
|  | DWORD Version; | 
|  | LPSTR Label; | 
|  | LPSTR Comment; | 
|  | BYTE DataType; | 
|  | BYTE DataQualifier; | 
|  | __C89_NAMELESS union { | 
|  | LPVOID lpExtendedInfo; | 
|  | LPRANGE lpRange; | 
|  | LPSET lpSet; | 
|  | DWORD Bitmask; | 
|  | DWORD Value; | 
|  | }; | 
|  | WORD FormatStringSize; | 
|  | LPVOID InstanceData; | 
|  | } PROPERTYINFO; | 
|  |  | 
|  | typedef PROPERTYINFO *LPPROPERTYINFO; | 
|  |  | 
|  | #define PROPERTYINFO_SIZE (sizeof(PROPERTYINFO)) | 
|  |  | 
|  | typedef struct _PROPERTYINSTEX { | 
|  | WORD Length; | 
|  | WORD LengthEx; | 
|  | ULPVOID lpData; | 
|  | __C89_NAMELESS union { | 
|  | BYTE Byte[1]; | 
|  | WORD Word[1]; | 
|  | DWORD Dword[1]; | 
|  | LARGE_INTEGER LargeInt[1]; | 
|  | SYSTEMTIME SysTime[1]; | 
|  | TYPED_STRING TypedString; | 
|  | }; | 
|  | } PROPERTYINSTEX; | 
|  | typedef PROPERTYINSTEX *LPPROPERTYINSTEX; | 
|  | typedef PROPERTYINSTEX UNALIGNED *ULPPROPERTYINSTEX; | 
|  |  | 
|  | #define PROPERTYINSTEX_SIZE sizeof(PROPERTYINSTEX) | 
|  |  | 
|  | typedef struct _PROPERTYINST { | 
|  | LPPROPERTYINFO lpPropertyInfo; | 
|  | LPSTR szPropertyText; | 
|  | __C89_NAMELESS union { | 
|  | LPVOID lpData; | 
|  | ULPBYTE lpByte; | 
|  | ULPWORD lpWord; | 
|  | ULPDWORD lpDword; | 
|  | ULPLARGEINT lpLargeInt; | 
|  | ULPSYSTEMTIME lpSysTime; | 
|  | LPPROPERTYINSTEX lpPropertyInstEx; | 
|  | }; | 
|  | WORD DataLength; | 
|  | WORD Level : 4; | 
|  | WORD HelpID : 12; | 
|  | DWORD IFlags; | 
|  | } PROPERTYINST; | 
|  |  | 
|  | typedef PROPERTYINST *LPPROPERTYINST; | 
|  |  | 
|  | #define PROPERTYINST_SIZE sizeof(PROPERTYINST) | 
|  |  | 
|  | #define IFLAG_ERROR (0x1) | 
|  | #define IFLAG_SWAPPED (0x2) | 
|  | #define IFLAG_UNICODE (0x4) | 
|  |  | 
|  | typedef struct _PROPERTYINSTTABLE { | 
|  | WORD nPropertyInsts; | 
|  | WORD nPropertyInstIndex; | 
|  | } PROPERTYINSTTABLE; | 
|  |  | 
|  | typedef PROPERTYINSTTABLE *LPPROPERTYINSTTABLE; | 
|  |  | 
|  | #define PROPERTYINSTTABLE_SIZE (sizeof(PROPERTYINSTTABLE)) | 
|  |  | 
|  | typedef struct _PROPERTYTABLE { | 
|  | LPVOID lpFormatBuffer; | 
|  | DWORD FormatBufferLength; | 
|  | DWORD nTotalPropertyInsts; | 
|  | LPPROPERTYINST lpFirstPropertyInst; | 
|  | BYTE nPropertyInstTables; | 
|  | PROPERTYINSTTABLE PropertyInstTable[0]; | 
|  | } PROPERTYTABLE; | 
|  |  | 
|  | typedef PROPERTYTABLE *LPPROPERTYTABLE; | 
|  |  | 
|  | #define PROPERTYTABLE_SIZE sizeof(PROPERTYTABLE) | 
|  |  | 
|  | typedef VOID (WINAPI *REGISTER)(HPROTOCOL); | 
|  | typedef VOID (WINAPI *DEREGISTER)(HPROTOCOL); | 
|  | typedef LPBYTE (WINAPI *RECOGNIZEFRAME)(HFRAME,ULPBYTE,ULPBYTE,DWORD,DWORD,HPROTOCOL,DWORD,LPDWORD,LPHPROTOCOL,PDWORD_PTR); | 
|  | typedef LPBYTE (WINAPI *ATTACHPROPERTIES)(HFRAME,ULPBYTE,ULPBYTE,DWORD,DWORD,HPROTOCOL,DWORD,DWORD_PTR); | 
|  | typedef DWORD (WINAPI *FORMATPROPERTIES)(HFRAME,ULPBYTE,ULPBYTE,DWORD,LPPROPERTYINST); | 
|  |  | 
|  | typedef struct _ENTRYPOINTS { | 
|  | REGISTER Register; | 
|  | DEREGISTER Deregister; | 
|  | RECOGNIZEFRAME RecognizeFrame; | 
|  | ATTACHPROPERTIES AttachProperties; | 
|  | FORMATPROPERTIES FormatProperties; | 
|  | } ENTRYPOINTS; | 
|  |  | 
|  | typedef ENTRYPOINTS *LPENTRYPOINTS; | 
|  |  | 
|  | #define ENTRYPOINTS_SIZE sizeof(ENTRYPOINTS) | 
|  |  | 
|  | typedef struct _PROPERTYDATABASE { | 
|  | DWORD nProperties; | 
|  | LPPROPERTYINFO PropertyInfo[0]; | 
|  | } PROPERTYDATABASE; | 
|  |  | 
|  | #define PROPERTYDATABASE_SIZE sizeof(PROPERTYDATABASE) | 
|  |  | 
|  | typedef PROPERTYDATABASE *LPPROPERTYDATABASE; | 
|  |  | 
|  | typedef struct _PROTOCOLINFO { | 
|  | DWORD ProtocolID; | 
|  | LPPROPERTYDATABASE PropertyDatabase; | 
|  | BYTE ProtocolName[16]; | 
|  | BYTE HelpFile[16]; | 
|  | BYTE Comment[128]; | 
|  | } PROTOCOLINFO; | 
|  |  | 
|  | typedef PROTOCOLINFO *LPPROTOCOLINFO; | 
|  |  | 
|  | #define PROTOCOLINFO_SIZE sizeof(PROTOCOLINFO) | 
|  |  | 
|  | typedef struct _PROTOCOLTABLE { | 
|  | DWORD nProtocols; | 
|  | HPROTOCOL hProtocol[1]; | 
|  | } PROTOCOLTABLE; | 
|  |  | 
|  | typedef PROTOCOLTABLE *LPPROTOCOLTABLE; | 
|  |  | 
|  | #define PROTOCOLTABLE_SIZE (sizeof(PROTOCOLTABLE) - sizeof(HPROTOCOL)) | 
|  | #define PROTOCOLTABLE_ACTUAL_SIZE(p) GetTableSize(PROTOCOLTABLE_SIZE,(p)->nProtocols,sizeof(HPROTOCOL)) | 
|  |  | 
|  | #define SORT_BYADDRESS (0) | 
|  | #define SORT_BYNAME (1) | 
|  | #define PERMANENT_NAME (0x100) | 
|  |  | 
|  | typedef struct _ADDRESSINFO2 { | 
|  | ADDRESS2 Address; | 
|  | WCHAR Name[MAX_NAME_SIZE]; | 
|  | DWORD Flags; | 
|  | LPVOID lpAddressInstData; | 
|  | } ADDRESSINFO2; | 
|  |  | 
|  | typedef struct _ADDRESSINFO2 *LPADDRESSINFO2; | 
|  |  | 
|  | #define ADDRESSINFO2_SIZE sizeof(ADDRESSINFO2) | 
|  |  | 
|  | typedef struct _ADDRESSINFOTABLE2 { | 
|  | DWORD nAddressInfos; | 
|  | LPADDRESSINFO2 lpAddressInfo[0]; | 
|  | } ADDRESSINFOTABLE2; | 
|  |  | 
|  | typedef ADDRESSINFOTABLE2 *LPADDRESSINFOTABLE2; | 
|  |  | 
|  | #define ADDRESSINFOTABLE2_SIZE sizeof(ADDRESSINFOTABLE2) | 
|  |  | 
|  | typedef DWORD (WINAPI *FILTERPROC)(HCAPTURE,HFRAME,LPVOID); | 
|  |  | 
|  | #define NMERR_SUCCESS (0) | 
|  | #define NMERR_MEMORY_MAPPED_FILE_ERROR (1) | 
|  | #define NMERR_INVALID_HFILTER (2) | 
|  | #define NMERR_CAPTURING (3) | 
|  | #define NMERR_NOT_CAPTURING (4) | 
|  | #define NMERR_NO_MORE_FRAMES (5) | 
|  | #define NMERR_BUFFER_TOO_SMALL (6) | 
|  | #define NMERR_FRAME_NOT_RECOGNIZED (7) | 
|  | #define NMERR_FILE_ALREADY_EXISTS (8) | 
|  | #define NMERR_DRIVER_NOT_FOUND (9) | 
|  | #define NMERR_ADDRESS_ALREADY_EXISTS (10) | 
|  | #define NMERR_INVALID_HFRAME (11) | 
|  | #define NMERR_INVALID_HPROTOCOL (12) | 
|  | #define NMERR_INVALID_HPROPERTY (13) | 
|  | #define NMERR_LOCKED (14) | 
|  | #define NMERR_STACK_EMPTY (15) | 
|  | #define NMERR_STACK_OVERFLOW (16) | 
|  | #define NMERR_TOO_MANY_PROTOCOLS (17) | 
|  | #define NMERR_FILE_NOT_FOUND (18) | 
|  | #define NMERR_OUT_OF_MEMORY (19) | 
|  | #define NMERR_CAPTURE_PAUSED (20) | 
|  | #define NMERR_NO_BUFFERS (21) | 
|  | #define NMERR_BUFFERS_ALREADY_EXIST (22) | 
|  | #define NMERR_NOT_LOCKED (23) | 
|  | #define NMERR_OUT_OF_RANGE (24) | 
|  | #define NMERR_LOCK_NESTING_TOO_DEEP (25) | 
|  | #define NMERR_LOAD_PARSER_FAILED (26) | 
|  | #define NMERR_UNLOAD_PARSER_FAILED (27) | 
|  | #define NMERR_INVALID_HADDRESSDB (28) | 
|  | #define NMERR_ADDRESS_NOT_FOUND (29) | 
|  | #define NMERR_NETWORK_NOT_PRESENT (30) | 
|  | #define NMERR_NO_PROPERTY_DATABASE (31) | 
|  | #define NMERR_PROPERTY_NOT_FOUND (32) | 
|  | #define NMERR_INVALID_HPROPERTYDB (33) | 
|  | #define NMERR_PROTOCOL_NOT_ENABLED (34) | 
|  | #define NMERR_PROTOCOL_NOT_FOUND (35) | 
|  | #define NMERR_INVALID_PARSER_DLL (36) | 
|  | #define NMERR_NO_ATTACHED_PROPERTIES (37) | 
|  | #define NMERR_NO_FRAMES (38) | 
|  | #define NMERR_INVALID_FILE_FORMAT (39) | 
|  | #define NMERR_COULD_NOT_CREATE_TEMPFILE (40) | 
|  | #define NMERR_OUT_OF_DOS_MEMORY (41) | 
|  | #define NMERR_NO_PROTOCOLS_ENABLED (42) | 
|  | #define NMERR_UNKNOWN_MACTYPE (46) | 
|  | #define NMERR_ROUTING_INFO_NOT_PRESENT (47) | 
|  | #define NMERR_INVALID_HNETWORK (48) | 
|  | #define NMERR_NETWORK_ALREADY_OPENED (49) | 
|  | #define NMERR_NETWORK_NOT_OPENED (50) | 
|  | #define NMERR_FRAME_NOT_FOUND (51) | 
|  | #define NMERR_NO_HANDLES (53) | 
|  | #define NMERR_INVALID_NETWORK_ID (54) | 
|  | #define NMERR_INVALID_HCAPTURE (55) | 
|  | #define NMERR_PROTOCOL_ALREADY_ENABLED (56) | 
|  | #define NMERR_FILTER_INVALID_EXPRESSION (57) | 
|  | #define NMERR_TRANSMIT_ERROR (58) | 
|  | #define NMERR_INVALID_HBUFFER (59) | 
|  | #define NMERR_INVALID_DATA (60) | 
|  | #define NMERR_MSDOS_DRIVER_NOT_LOADED (61) | 
|  | #define NMERR_WINDOWS_DRIVER_NOT_LOADED (62) | 
|  | #define NMERR_MSDOS_DRIVER_INIT_FAILURE (63) | 
|  | #define NMERR_WINDOWS_DRIVER_INIT_FAILURE (64) | 
|  | #define NMERR_NETWORK_BUSY (65) | 
|  | #define NMERR_CAPTURE_NOT_PAUSED (66) | 
|  | #define NMERR_INVALID_PACKET_LENGTH (67) | 
|  | #define NMERR_INTERNAL_EXCEPTION (69) | 
|  | #define NMERR_PROMISCUOUS_MODE_NOT_SUPPORTED (70) | 
|  | #define NMERR_MAC_DRIVER_OPEN_FAILURE (71) | 
|  | #define NMERR_RUNAWAY_PROTOCOL (72) | 
|  | #define NMERR_PENDING (73) | 
|  | #define NMERR_ACCESS_DENIED (74) | 
|  | #define NMERR_INVALID_HPASSWORD (75) | 
|  | #define NMERR_INVALID_PARAMETER (76) | 
|  | #define NMERR_FILE_READ_ERROR (77) | 
|  | #define NMERR_FILE_WRITE_ERROR (78) | 
|  | #define NMERR_PROTOCOL_NOT_REGISTERED (79) | 
|  | #define NMERR_IP_ADDRESS_NOT_FOUND (80) | 
|  | #define NMERR_TRANSMIT_CANCELLED (81) | 
|  | #define NMERR_LOCKED_FRAMES (82) | 
|  | #define NMERR_NO_TRANSMITS_PENDING (83) | 
|  | #define NMERR_PATH_NOT_FOUND (84) | 
|  | #define NMERR_WINDOWS_ERROR (85) | 
|  | #define NMERR_NO_FRAME_NUMBER (86) | 
|  | #define NMERR_FRAME_HAS_NO_CAPTURE (87) | 
|  | #define NMERR_FRAME_ALREADY_HAS_CAPTURE (88) | 
|  | #define NMERR_NAL_IS_NOT_REMOTE (89) | 
|  | #define NMERR_NOT_SUPPORTED (90) | 
|  | #define NMERR_DISCARD_FRAME (91) | 
|  | #define NMERR_CANCEL_SAVE_CAPTURE (92) | 
|  | #define NMERR_LOST_CONNECTION (93) | 
|  | #define NMERR_INVALID_MEDIA_TYPE (94) | 
|  | #define NMERR_AGENT_IN_USE (95) | 
|  | #define NMERR_TIMEOUT (96) | 
|  | #define NMERR_DISCONNECTED (97) | 
|  | #define NMERR_SETTIMER_FAILED (98) | 
|  | #define NMERR_NETWORK_ERROR (99) | 
|  | #define NMERR_INVALID_FRAMESPROC (100) | 
|  | #define NMERR_UNKNOWN_CAPTURETYPE (101) | 
|  | #define NMERR_NOT_CONNECTED (102) | 
|  | #define NMERR_ALREADY_CONNECTED (103) | 
|  | #define NMERR_INVALID_REGISTRY_CONFIGURATION (104) | 
|  | #define NMERR_DELAYED (105) | 
|  | #define NMERR_NOT_DELAYED (106) | 
|  | #define NMERR_REALTIME (107) | 
|  | #define NMERR_NOT_REALTIME (108) | 
|  | #define NMERR_STATS_ONLY (109) | 
|  | #define NMERR_NOT_STATS_ONLY (110) | 
|  | #define NMERR_TRANSMIT (111) | 
|  | #define NMERR_NOT_TRANSMIT (112) | 
|  | #define NMERR_TRANSMITTING (113) | 
|  | #define NMERR_DISK_NOT_LOCAL_FIXED (114) | 
|  | #define NMERR_COULD_NOT_CREATE_DIRECTORY (115) | 
|  | #define NMERR_NO_DEFAULT_CAPTURE_DIRECTORY (116) | 
|  | #define NMERR_UPLEVEL_CAPTURE_FILE (117) | 
|  | #define NMERR_LOAD_EXPERT_FAILED (118) | 
|  | #define NMERR_EXPERT_REPORT_FAILED (119) | 
|  | #define NMERR_REG_OPERATION_FAILED (120) | 
|  | #define NMERR_NO_DLLS_FOUND (121) | 
|  | #define NMERR_NO_CONVERSATION_STATS (122) | 
|  | #define NMERR_SECURITY_BREACH_CAPTURE_DELETED (123) | 
|  | #define NMERR_FRAME_FAILED_FILTER (124) | 
|  | #define NMERR_EXPERT_TERMINATE (125) | 
|  | #define NMERR_REMOTE_NOT_A_SERVER (126) | 
|  | #define NMERR_REMOTE_VERSION_OUTOFSYNC (127) | 
|  | #define NMERR_INVALID_EXPERT_GROUP (128) | 
|  | #define NMERR_INVALID_EXPERT_NAME (129) | 
|  | #define NMERR_INVALID_EXPERT_HANDLE (130) | 
|  | #define NMERR_GROUP_NAME_ALREADY_EXISTS (131) | 
|  | #define NMERR_INVALID_GROUP_NAME (132) | 
|  | #define NMERR_EXPERT_ALREADY_IN_GROUP (133) | 
|  | #define NMERR_EXPERT_NOT_IN_GROUP (134) | 
|  | #define NMERR_NOT_INITIALIZED (135) | 
|  | #define NMERR_INVALID_GROUP_ROOT (136) | 
|  | #define NMERR_BAD_VERSION (137) | 
|  | #define NMERR_ESP (138) | 
|  | #define NMERR_NOT_ESP (139) | 
|  | #define NMERR_BLOB_NOT_INITIALIZED (1000) | 
|  | #define NMERR_INVALID_BLOB (1001) | 
|  | #define NMERR_UPLEVEL_BLOB (1002) | 
|  | #define NMERR_BLOB_ENTRY_ALREADY_EXISTS (1003) | 
|  | #define NMERR_BLOB_ENTRY_DOES_NOT_EXIST (1004) | 
|  | #define NMERR_AMBIGUOUS_SPECIFIER (1005) | 
|  | #define NMERR_BLOB_OWNER_NOT_FOUND (1006) | 
|  | #define NMERR_BLOB_CATEGORY_NOT_FOUND (1007) | 
|  | #define NMERR_UNKNOWN_CATEGORY (1008) | 
|  | #define NMERR_UNKNOWN_TAG (1009) | 
|  | #define NMERR_BLOB_CONVERSION_ERROR (1010) | 
|  | #define NMERR_ILLEGAL_TRIGGER (1011) | 
|  | #define NMERR_BLOB_STRING_INVALID (1012) | 
|  | #define NMERR_UNABLE_TO_LOAD_LIBRARY (1013) | 
|  | #define NMERR_UNABLE_TO_GET_PROCADDR (1014) | 
|  | #define NMERR_CLASS_NOT_REGISTERED (1015) | 
|  | #define NMERR_INVALID_REMOTE_COMPUTERNAME (1016) | 
|  | #define NMERR_RPC_REMOTE_FAILURE (1017) | 
|  | #define NMERR_NO_NPPS (3016) | 
|  | #define NMERR_NO_MATCHING_NPPS (3017) | 
|  | #define NMERR_NO_NPP_SELECTED (3018) | 
|  | #define NMERR_NO_INPUT_BLOBS (3019) | 
|  | #define NMERR_NO_NPP_DLLS (3020) | 
|  | #define NMERR_NO_VALID_NPP_DLLS (3021) | 
|  |  | 
|  | #ifndef INLINE | 
|  | #define INLINE __CRT_INLINE | 
|  | #endif | 
|  | typedef LONG HRESULT; | 
|  |  | 
|  | INLINE HRESULT NMERR_TO_HRESULT(DWORD nmerror) { | 
|  | HRESULT hResult; | 
|  | if(nmerror==NMERR_SUCCESS) hResult = NOERROR; | 
|  | else hResult = MAKE_HRESULT(SEVERITY_ERROR,FACILITY_ITF,(WORD)nmerror); | 
|  | return hResult; | 
|  | } | 
|  |  | 
|  | INLINE DWORD HRESULT_TO_NMERR(HRESULT hResult) { return HRESULT_CODE(hResult); } | 
|  |  | 
|  | typedef HFILTER *LPHFILTER; | 
|  | typedef DWORD FILTERACTIONTYPE; | 
|  | typedef DWORD VALUETYPE; | 
|  |  | 
|  | #define PROTOCOL_NUM_ANY (-1) | 
|  |  | 
|  | typedef PROTOCOLTABLE PROTOCOLTABLETYPE; | 
|  | typedef PROTOCOLTABLETYPE *LPPROTOCOLTABLETYPE; | 
|  | typedef DWORD FILTERBITS; | 
|  | typedef FILTERBITS *LPFILTERBITS; | 
|  | typedef SYSTEMTIME *LPTIME; | 
|  | typedef SYSTEMTIME UNALIGNED *ULPTIME; | 
|  |  | 
|  | typedef struct _FILTEROBJECT2 { | 
|  | FILTERACTIONTYPE Action; | 
|  | HPROPERTY hProperty; | 
|  | __C89_NAMELESS union { | 
|  | VALUETYPE Value; | 
|  | HPROTOCOL hProtocol; | 
|  | LPVOID lpArray; | 
|  | LPPROTOCOLTABLETYPE lpProtocolTable; | 
|  | LPADDRESS2 lpAddress; | 
|  | ULPLARGEINT lpLargeInt; | 
|  | ULPTIME lpTime; | 
|  | LPOBJECT_IDENTIFIER lpOID; | 
|  | }; | 
|  | __C89_NAMELESS union { | 
|  | WORD ByteCount; | 
|  | WORD ByteOffset; | 
|  | }; | 
|  | struct _FILTEROBJECT2 *pNext; | 
|  | } FILTEROBJECT2; | 
|  |  | 
|  | typedef FILTEROBJECT2 *LPFILTEROBJECT2; | 
|  |  | 
|  | #define FILTERINFO_SIZE (sizeof(FILTEROBJECT2)) | 
|  |  | 
|  | typedef struct _FILTERDESC2 { | 
|  | WORD NumEntries; | 
|  | WORD Flags; | 
|  | LPFILTEROBJECT2 lpStack; | 
|  | LPFILTEROBJECT2 lpKeepLast; | 
|  | LPVOID UIInstanceData; | 
|  | LPFILTERBITS lpFilterBits; | 
|  | LPFILTERBITS lpCheckBits; | 
|  | } FILTERDESC2; | 
|  |  | 
|  | typedef FILTERDESC2 *LPFILTERDESC2; | 
|  |  | 
|  | #define FILTERDESC2_SIZE sizeof(FILTERDESC2) | 
|  |  | 
|  | typedef struct _FILTEROBJECT { | 
|  | FILTERACTIONTYPE Action; | 
|  | HPROPERTY hProperty; | 
|  | __C89_NAMELESS union { | 
|  | VALUETYPE Value; | 
|  | HPROTOCOL hProtocol; | 
|  | LPVOID lpArray; | 
|  | LPPROTOCOLTABLETYPE lpProtocolTable; | 
|  | LPADDRESS lpAddress; | 
|  | ULPLARGEINT lpLargeInt; | 
|  | ULPTIME lpTime; | 
|  | LPOBJECT_IDENTIFIER lpOID; | 
|  | }; | 
|  | __C89_NAMELESS union { | 
|  | WORD ByteCount; | 
|  | WORD ByteOffset; | 
|  | }; | 
|  | struct _FILTEROBJECT *pNext; | 
|  | } FILTEROBJECT; | 
|  | typedef FILTEROBJECT *LPFILTEROBJECT; | 
|  |  | 
|  | typedef struct _FILTERDESC { | 
|  | WORD NumEntries; | 
|  | WORD Flags; | 
|  | LPFILTEROBJECT lpStack; | 
|  | LPFILTEROBJECT lpKeepLast; | 
|  | LPVOID UIInstanceData; | 
|  | LPFILTERBITS lpFilterBits; | 
|  | LPFILTERBITS lpCheckBits; | 
|  | } FILTERDESC; | 
|  |  | 
|  | typedef FILTERDESC *LPFILTERDESC; | 
|  |  | 
|  | #define FILTERDESC_SIZE sizeof(FILTERDESC) | 
|  |  | 
|  | #define FilterGetUIInstanceData(hfilt) (((LPFILTERDESC2)hfilt)->UIInstanceData) | 
|  | #define FilterSetUIInstanceData(hfilt,inst) (((LPFILTERDESC2)hfilt)->UIInstanceData = (LPVOID)inst) | 
|  |  | 
|  | #define FILTERFREEPOOLSTART (20) | 
|  |  | 
|  | #define INVALIDELEMENT (-1) | 
|  | #define INVALIDVALUE ((VALUETYPE)-9999) | 
|  | #define FILTER_FAIL_WITH_ERROR (-1) | 
|  | #define FILTER_PASSED (TRUE) | 
|  | #define FILTER_FAILED (FALSE) | 
|  |  | 
|  | #define FILTERACTION_INVALID (0) | 
|  | #define FILTERACTION_PROPERTY (1) | 
|  | #define FILTERACTION_VALUE (2) | 
|  | #define FILTERACTION_STRING (3) | 
|  | #define FILTERACTION_ARRAY (4) | 
|  | #define FILTERACTION_AND (5) | 
|  | #define FILTERACTION_OR (6) | 
|  | #define FILTERACTION_XOR (7) | 
|  | #define FILTERACTION_PROPERTYEXIST (8) | 
|  | #define FILTERACTION_CONTAINSNC (9) | 
|  | #define FILTERACTION_CONTAINS (10) | 
|  | #define FILTERACTION_NOT (11) | 
|  | #define FILTERACTION_EQUALNC (12) | 
|  | #define FILTERACTION_EQUAL (13) | 
|  | #define FILTERACTION_NOTEQUALNC (14) | 
|  | #define FILTERACTION_NOTEQUAL (15) | 
|  | #define FILTERACTION_GREATERNC (16) | 
|  | #define FILTERACTION_GREATER (17) | 
|  | #define FILTERACTION_LESSNC (18) | 
|  | #define FILTERACTION_LESS (19) | 
|  | #define FILTERACTION_GREATEREQUALNC (20) | 
|  | #define FILTERACTION_GREATEREQUAL (21) | 
|  | #define FILTERACTION_LESSEQUALNC (22) | 
|  | #define FILTERACTION_LESSEQUAL (23) | 
|  | #define FILTERACTION_PLUS (24) | 
|  | #define FILTERACTION_MINUS (25) | 
|  | #define FILTERACTION_ADDRESS (26) | 
|  | #define FILTERACTION_ADDRESSANY (27) | 
|  | #define FILTERACTION_FROM (28) | 
|  | #define FILTERACTION_TO (29) | 
|  | #define FILTERACTION_FROMTO (30) | 
|  | #define FILTERACTION_AREBITSON (31) | 
|  | #define FILTERACTION_AREBITSOFF (32) | 
|  | #define FILTERACTION_PROTOCOLSEXIST (33) | 
|  | #define FILTERACTION_PROTOCOLEXIST (34) | 
|  | #define FILTERACTION_ARRAYEQUAL (35) | 
|  | #define FILTERACTION_DEREFPROPERTY (36) | 
|  | #define FILTERACTION_LARGEINT (37) | 
|  | #define FILTERACTION_TIME (38) | 
|  | #define FILTERACTION_ADDR_ETHER (39) | 
|  | #define FILTERACTION_ADDR_TOKEN (40) | 
|  | #define FILTERACTION_ADDR_FDDI (41) | 
|  | #define FILTERACTION_ADDR_IPX (42) | 
|  | #define FILTERACTION_ADDR_IP (43) | 
|  | #define FILTERACTION_OID (44) | 
|  | #define FILTERACTION_OID_CONTAINS (45) | 
|  | #define FILTERACTION_OID_BEGINS_WITH (46) | 
|  | #define FILTERACTION_OID_ENDS_WITH (47) | 
|  | #define FILTERACTION_ADDR_VINES (48) | 
|  | #define FILTERACTION_ADDR_IP6 (49) | 
|  | #define FILTERACTION_EXPRESSION (97) | 
|  | #define FILTERACTION_BOOL (98) | 
|  | #define FILTERACTION_NOEVAL (99) | 
|  | #define FILTER_NO_MORE_FRAMES (0xffffffff) | 
|  | #define FILTER_CANCELED (0xfffffffe) | 
|  | #define FILTER_DIRECTION_NEXT (TRUE) | 
|  | #define FILTER_DIRECTION_PREV (FALSE) | 
|  |  | 
|  | typedef WINBOOL (WINAPI *STATUSPROC)(DWORD,HCAPTURE,HFILTER,LPVOID); | 
|  |  | 
|  | HFILTER WINAPI CreateFilter(VOID); | 
|  | DWORD WINAPI DestroyFilter(HFILTER hFilter); | 
|  | HFILTER WINAPI FilterDuplicate(HFILTER hFilter); | 
|  | DWORD WINAPI DisableParserFilter(HFILTER hFilter,HPARSER hParser); | 
|  | DWORD WINAPI EnableParserFilter(HFILTER hFilter,HPARSER hParser); | 
|  | DWORD WINAPI FilterAddObject(HFILTER hFilter,LPFILTEROBJECT2 lpFilterObject); | 
|  | VOID WINAPI FilterFlushBits(HFILTER hFilter); | 
|  | DWORD WINAPI FilterFrame(HFRAME hFrame,HFILTER hFilter,HCAPTURE hCapture); | 
|  | WINBOOL WINAPI FilterAttachesProperties(HFILTER hFilter); | 
|  | DWORD WINAPI FilterFindFrame (HFILTER hFilter,HCAPTURE hCapture,DWORD nFrame,STATUSPROC StatusProc,LPVOID UIInstance,DWORD TimeDelta,WINBOOL FilterDirection); | 
|  | HFRAME FilterFindPropertyInstance (HFRAME hFrame,HFILTER hMasterFilter,HCAPTURE hCapture,HFILTER hInstanceFilter,LPPROPERTYINST *lpPropRestartKey,STATUSPROC StatusProc,LPVOID UIInstance,DWORD TimeDelta,WINBOOL FilterForward); | 
|  | VOID WINAPI SetCurrentFilter(HFILTER); | 
|  | HFILTER WINAPI GetCurrentFilter(VOID); | 
|  |  | 
|  | typedef struct _ETHERNET { | 
|  | BYTE DstAddr[MAX_ADDR_LENGTH]; | 
|  | BYTE SrcAddr[MAX_ADDR_LENGTH]; | 
|  | __C89_NAMELESS union { | 
|  | WORD Length; | 
|  | WORD Type; | 
|  | }; | 
|  | BYTE Info[0]; | 
|  | } ETHERNET; | 
|  |  | 
|  | typedef ETHERNET *LPETHERNET; | 
|  | typedef ETHERNET UNALIGNED *ULPETHERNET; | 
|  |  | 
|  | #define ETHERNET_SIZE sizeof(ETHERNET) | 
|  | #define ETHERNET_HEADER_LENGTH (14) | 
|  |  | 
|  | #define ETHERNET_DATA_LENGTH (0x5dc) | 
|  | #define ETHERNET_FRAME_LENGTH (0x5ea) | 
|  | #define ETHERNET_FRAME_TYPE (0x600) | 
|  |  | 
|  | typedef struct _NM_ATM { | 
|  | UCHAR DstAddr[6]; | 
|  | UCHAR SrcAddr[6]; | 
|  | ULONG Vpi; | 
|  | ULONG Vci; | 
|  | } NM_ATM; | 
|  |  | 
|  | typedef NM_ATM *PNM_ATM; | 
|  | typedef NM_ATM *UPNM_ATM; | 
|  |  | 
|  | #define NM_ATM_HEADER_LENGTH sizeof(NM_ATM) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  |  | 
|  | typedef struct _NM_1394 { | 
|  | UCHAR DstAddr[6]; | 
|  | UCHAR SrcAddr[6]; | 
|  | ULONGLONG VcId; | 
|  | } NM_1394; | 
|  |  | 
|  | typedef NM_1394 *PNM_1394; | 
|  | typedef NM_1394 *UPNM_1394; | 
|  |  | 
|  | #define NM_1394_HEADER_LENGTH sizeof(NM_1394) | 
|  |  | 
|  | typedef struct _TOKENRING { | 
|  | BYTE AccessCtrl; | 
|  | BYTE FrameCtrl; | 
|  | BYTE DstAddr[MAX_ADDR_LENGTH]; | 
|  | BYTE SrcAddr[MAX_ADDR_LENGTH]; | 
|  | __C89_NAMELESS union { | 
|  | BYTE Info[0]; | 
|  | WORD RoutingInfo[0]; | 
|  | }; | 
|  | } TOKENRING; | 
|  |  | 
|  | typedef TOKENRING *LPTOKENRING; | 
|  | typedef TOKENRING UNALIGNED *ULPTOKENRING; | 
|  | #define TOKENRING_SIZE sizeof(TOKENRING) | 
|  | #define TOKENRING_HEADER_LENGTH (14) | 
|  |  | 
|  | #define TOKENRING_SA_ROUTING_INFO (0x80) | 
|  |  | 
|  | #define TOKENRING_SA_LOCAL (0x40) | 
|  | #define TOKENRING_DA_LOCAL (0x40) | 
|  | #define TOKENRING_DA_GROUP (0x80) | 
|  | #define TOKENRING_RC_LENGTHMASK (0x1f) | 
|  | #define TOKENRING_BC_MASK (0xe0) | 
|  | #define TOKENRING_TYPE_MAC (0) | 
|  | #define TOKENRING_TYPE_LLC (0x40) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  |  | 
|  | typedef struct _FDDI { | 
|  | BYTE FrameCtrl; | 
|  | BYTE DstAddr[MAX_ADDR_LENGTH]; | 
|  | BYTE SrcAddr[MAX_ADDR_LENGTH]; | 
|  | BYTE Info[0]; | 
|  | } FDDI; | 
|  |  | 
|  | #define FDDI_SIZE sizeof(FDDI) | 
|  |  | 
|  | typedef FDDI *LPFDDI; | 
|  | typedef FDDI UNALIGNED *ULPFDDI; | 
|  |  | 
|  | #define FDDI_HEADER_LENGTH (13) | 
|  | #define FDDI_TYPE_MAC (0) | 
|  | #define FDDI_TYPE_LLC (0x10) | 
|  | #define FDDI_TYPE_LONG_ADDRESS (0x40) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #pragma pack(push,1) | 
|  |  | 
|  | typedef struct _LLC { | 
|  | BYTE dsap; | 
|  | BYTE ssap; | 
|  | struct { | 
|  | __C89_NAMELESS union { | 
|  | BYTE Command; | 
|  | BYTE NextSend; | 
|  | }; | 
|  | __C89_NAMELESS union { | 
|  | BYTE NextRecv; | 
|  | BYTE Data[1]; | 
|  | }; | 
|  | } ControlField; | 
|  | } LLC; | 
|  |  | 
|  | typedef LLC *LPLLC; | 
|  | typedef LLC UNALIGNED *ULPLLC; | 
|  |  | 
|  | #define LLC_SIZE (sizeof(LLC)) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #define IsRoutingInfoPresent(f) ((((ULPTOKENRING) (f))->SrcAddr[0] & TOKENRING_SA_ROUTING_INFO) ? TRUE : FALSE) | 
|  | #define GetRoutingInfoLength(f) (IsRoutingInfoPresent(f) ? (((ULPTOKENRING) (f))->RoutingInfo[0] & TOKENRING_RC_LENGTHMASK) : 0) | 
|  |  | 
|  | typedef VOID (WINAPIV *FORMAT)(LPPROPERTYINST,...); | 
|  |  | 
|  | #define PROTOCOL_STATUS_RECOGNIZED (0) | 
|  | #define PROTOCOL_STATUS_NOT_RECOGNIZED (1) | 
|  | #define PROTOCOL_STATUS_CLAIMED (2) | 
|  | #define PROTOCOL_STATUS_NEXT_PROTOCOL (3) | 
|  |  | 
|  | extern BYTE HexTable[]; | 
|  |  | 
|  | #define XCHG(x) MAKEWORD(HIBYTE(x),LOBYTE(x)) | 
|  | #define DXCHG(x) MAKELONG(XCHG(HIWORD(x)),XCHG(LOWORD(x))) | 
|  | #define LONIBBLE(b) ((BYTE) ((b) & 0x0F)) | 
|  | #define HINIBBLE(b) ((BYTE) ((b) >> 4)) | 
|  | #define HEX(b) (HexTable[LONIBBLE(b)]) | 
|  | #define SWAPBYTES(w) ((w) = XCHG(w)) | 
|  | #define SWAPWORDS(d) ((d) = DXCHG(d)) | 
|  |  | 
|  | typedef union _MACFRAME { | 
|  | LPBYTE MacHeader; | 
|  | LPETHERNET Ethernet; | 
|  | LPTOKENRING Tokenring; | 
|  | LPFDDI Fddi; | 
|  | } MACFRAME; | 
|  |  | 
|  | typedef MACFRAME *LPMACFRAME; | 
|  |  | 
|  | #define HOT_SIGNATURE MAKE_IDENTIFIER('H','O','T','$') | 
|  | #define HOE_SIGNATURE MAKE_IDENTIFIER('H','O','E','$') | 
|  |  | 
|  | typedef struct _HANDOFFENTRY { | 
|  | DWORD hoe_sig; | 
|  | DWORD hoe_ProtIdentNumber; | 
|  | HPROTOCOL hoe_ProtocolHandle; | 
|  | DWORD hoe_ProtocolData; | 
|  | } HANDOFFENTRY; | 
|  |  | 
|  | typedef HANDOFFENTRY *LPHANDOFFENTRY; | 
|  |  | 
|  | typedef struct _HANDOFFTABLE { | 
|  | DWORD hot_sig; | 
|  | DWORD hot_NumEntries; | 
|  | LPHANDOFFENTRY hot_Entries; | 
|  | } HANDOFFTABLE; | 
|  |  | 
|  | typedef struct _HANDOFFTABLE *LPHANDOFFTABLE; | 
|  |  | 
|  | INLINE LPVOID GetPropertyInstanceData(LPPROPERTYINST PropertyInst) { | 
|  | if(PropertyInst->DataLength!=(WORD) -1) return PropertyInst->lpData; | 
|  | return (LPVOID) PropertyInst->lpPropertyInstEx->Byte; | 
|  | } | 
|  |  | 
|  | #define GetPropertyInstanceDataValue(p,type) ((type *) GetPropertyInstanceData(p))[0] | 
|  |  | 
|  | INLINE DWORD GetPropertyInstanceFrameDataLength(LPPROPERTYINST PropertyInst) { | 
|  | if(PropertyInst->DataLength!=(WORD) -1) return PropertyInst->DataLength; | 
|  | return PropertyInst->lpPropertyInstEx->Length; | 
|  | } | 
|  |  | 
|  | INLINE DWORD GetPropertyInstanceExDataLength(LPPROPERTYINST PropertyInst) { | 
|  | if(PropertyInst->DataLength==(WORD) -1) { | 
|  | PropertyInst->lpPropertyInstEx->Length; | 
|  | } | 
|  | return (WORD) -1; | 
|  | } | 
|  |  | 
|  | LPLABELED_WORD WINAPI GetProtocolDescriptionTable(LPDWORD TableSize); | 
|  | LPLABELED_WORD WINAPI GetProtocolDescription(DWORD ProtocolID); | 
|  | DWORD WINAPI GetMacHeaderLength(LPVOID MacHeader,DWORD MacType); | 
|  | DWORD WINAPI GetLLCHeaderLength(LPLLC Frame); | 
|  | DWORD WINAPI GetEtype(LPVOID MacHeader,DWORD MacType); | 
|  | DWORD WINAPI GetSaps(LPVOID MacHeader,DWORD MacType); | 
|  | WINBOOL WINAPI IsLLCPresent(LPVOID MacHeader,DWORD MacType); | 
|  | VOID WINAPI CanonicalizeHexString(LPSTR hex,LPSTR dest,DWORD len); | 
|  | void WINAPI CanonHex(UCHAR *pDest,UCHAR *pSource,int iLen,WINBOOL fOx); | 
|  | DWORD WINAPI ByteToBinary(LPSTR string,DWORD ByteValue); | 
|  | DWORD WINAPI WordToBinary(LPSTR string,DWORD WordValue); | 
|  | DWORD WINAPI DwordToBinary(LPSTR string,DWORD DwordValue); | 
|  | LPSTR WINAPI AddressToString(LPSTR string,BYTE *lpAddress); | 
|  | LPBYTE WINAPI StringToAddress(BYTE *lpAddress,LPSTR string); | 
|  | LPDWORD WINAPI VarLenSmallIntToDword(LPBYTE pValue,WORD ValueLen,WINBOOL fIsByteswapped,LPDWORD lpDword); | 
|  | LPBYTE WINAPI LookupByteSetString (LPSET lpSet,BYTE Value); | 
|  | LPBYTE WINAPI LookupWordSetString (LPSET lpSet,WORD Value); | 
|  | LPBYTE WINAPI LookupDwordSetString (LPSET lpSet,DWORD Value); | 
|  | DWORD WINAPIV FormatByteFlags(LPSTR string,DWORD ByteValue,DWORD BitMask); | 
|  | DWORD WINAPIV FormatWordFlags(LPSTR string,DWORD WordValue,DWORD BitMask); | 
|  | DWORD WINAPIV FormatDwordFlags(LPSTR string,DWORD DwordValue,DWORD BitMask); | 
|  | LPSTR WINAPIV FormatTimeAsString(SYSTEMTIME *time,LPSTR string); | 
|  | VOID WINAPIV FormatLabeledByteSetAsFlags(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatLabeledWordSetAsFlags(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatLabeledDwordSetAsFlags(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatPropertyDataAsByte(LPPROPERTYINST lpPropertyInst,DWORD Base); | 
|  | VOID WINAPIV FormatPropertyDataAsWord(LPPROPERTYINST lpPropertyInst,DWORD Base); | 
|  | VOID WINAPIV FormatPropertyDataAsDword(LPPROPERTYINST lpPropertyInst,DWORD Base); | 
|  | VOID WINAPIV FormatLabeledByteSet(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatLabeledWordSet(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatLabeledDwordSet(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatPropertyDataAsInt64(LPPROPERTYINST lpPropertyInst,DWORD Base); | 
|  | VOID WINAPIV FormatPropertyDataAsTime(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatPropertyDataAsString(LPPROPERTYINST lpPropertyInst); | 
|  | VOID WINAPIV FormatPropertyDataAsHexString(LPPROPERTYINST lpPropertyInst); | 
|  | ULPBYTE WINAPI ParserTemporaryLockFrame(HFRAME hFrame); | 
|  | LPVOID WINAPI GetCCInstPtr(VOID); | 
|  | VOID WINAPI SetCCInstPtr(LPVOID lpCurCaptureInst); | 
|  | LPVOID WINAPI CCHeapAlloc(DWORD dwBytes,WINBOOL bZeroInit); | 
|  | LPVOID WINAPI CCHeapReAlloc(LPVOID lpMem,DWORD dwBytes,WINBOOL bZeroInit); | 
|  | WINBOOL WINAPI CCHeapFree(LPVOID lpMem); | 
|  | SIZE_T WINAPI CCHeapSize(LPVOID lpMem); | 
|  | WINBOOL __cdecl BERGetInteger(ULPBYTE pCurrentPointer,ULPBYTE *ppValuePointer,LPDWORD pHeaderLength,LPDWORD pDataLength,ULPBYTE *ppNext); | 
|  | WINBOOL __cdecl BERGetString(ULPBYTE pCurrentPointer,ULPBYTE *ppValuePointer,LPDWORD pHeaderLength,LPDWORD pDataLength,ULPBYTE *ppNext); | 
|  | WINBOOL __cdecl BERGetHeader(ULPBYTE pCurrentPointer,ULPBYTE pTag,LPDWORD pHeaderLength,LPDWORD pDataLength,ULPBYTE *ppNext); | 
|  |  | 
|  | #define MAX_PROTOCOL_COMMENT_LEN (256) | 
|  |  | 
|  | #define NETMON_MAX_PROTOCOL_NAME_LEN (16) | 
|  |  | 
|  | #ifndef MAX_PROTOCOL_NAME_LEN | 
|  | #define MAX_PROTOCOL_NAME_LEN (NETMON_MAX_PROTOCOL_NAME_LEN) | 
|  | #else | 
|  | #undef MAX_PROTOCOL_NAME_LEN | 
|  | #endif | 
|  |  | 
|  | typedef enum __MIDL___MIDL_itf_netmon_0000_0015 { | 
|  | HANDOFF_VALUE_FORMAT_BASE_UNKNOWN = 0,HANDOFF_VALUE_FORMAT_BASE_DECIMAL = 10,HANDOFF_VALUE_FORMAT_BASE_HEX = 16 | 
|  | } PF_HANDOFFVALUEFORMATBASE; | 
|  |  | 
|  | typedef struct _PF_HANDOFFENTRY { | 
|  | char szIniFile[260]; | 
|  | char szIniSection[260]; | 
|  | char szProtocol[16]; | 
|  | DWORD dwHandOffValue; | 
|  | PF_HANDOFFVALUEFORMATBASE ValueFormatBase; | 
|  | } PF_HANDOFFENTRY; | 
|  |  | 
|  | typedef PF_HANDOFFENTRY *PPF_HANDOFFENTRY; | 
|  |  | 
|  | typedef struct _PF_HANDOFFSET { | 
|  | DWORD nEntries; | 
|  | PF_HANDOFFENTRY Entry[0]; | 
|  | } PF_HANDOFFSET; | 
|  |  | 
|  | typedef PF_HANDOFFSET *PPF_HANDOFFSET; | 
|  |  | 
|  | typedef struct _PF_FOLLOWENTRY { | 
|  | char szProtocol[16]; | 
|  | } PF_FOLLOWENTRY; | 
|  |  | 
|  | typedef PF_FOLLOWENTRY *PPF_FOLLOWENTRY; | 
|  |  | 
|  | typedef struct _PF_FOLLOWSET { | 
|  | DWORD nEntries; | 
|  | PF_FOLLOWENTRY Entry[0]; | 
|  | } PF_FOLLOWSET; | 
|  |  | 
|  | typedef PF_FOLLOWSET *PPF_FOLLOWSET; | 
|  |  | 
|  | typedef struct _PF_PARSERINFO { | 
|  | char szProtocolName[NETMON_MAX_PROTOCOL_NAME_LEN]; | 
|  | char szComment[MAX_PROTOCOL_COMMENT_LEN]; | 
|  | char szHelpFile[MAX_PATH]; | 
|  | PPF_FOLLOWSET pWhoCanPrecedeMe; | 
|  | PPF_FOLLOWSET pWhoCanFollowMe; | 
|  | PPF_HANDOFFSET pWhoHandsOffToMe; | 
|  | PPF_HANDOFFSET pWhoDoIHandOffTo; | 
|  | } PF_PARSERINFO; | 
|  |  | 
|  | typedef PF_PARSERINFO *PPF_PARSERINFO; | 
|  |  | 
|  | typedef struct _PF_PARSERDLLINFO { | 
|  | DWORD nParsers; | 
|  | PF_PARSERINFO ParserInfo[0]; | 
|  | } PF_PARSERDLLINFO; | 
|  |  | 
|  | typedef PF_PARSERDLLINFO *PPF_PARSERDLLINFO; | 
|  |  | 
|  | #define INI_PATH_LENGTH (256) | 
|  |  | 
|  | #define MAX_HANDOFF_ENTRY_LENGTH (80) | 
|  | #define MAX_PROTOCOL_NAME (40) | 
|  | #define NUMALLOCENTRIES (10) | 
|  | #define RAW_INI_STR_LEN (200) | 
|  |  | 
|  | #define PARSERS_SUBDIR "PARSERS" | 
|  | #define INI_EXTENSION "INI" | 
|  | #define BASE10_FORMAT_STR "%ld=%s %ld" | 
|  | #define BASE16_FORMAT_STR "%lx=%s %lx" | 
|  |  | 
|  | LPSTR __cdecl BuildINIPath(char *FullPath,char *IniFileName); | 
|  | DWORD WINAPI CreateHandoffTable(LPSTR secName,LPSTR iniFile,LPHANDOFFTABLE *hTable,DWORD nMaxProtocolEntries,DWORD base); | 
|  | HPROTOCOL WINAPI GetProtocolFromTable(LPHANDOFFTABLE hTable,DWORD ItemToFind,PDWORD_PTR lpInstData); | 
|  | VOID WINAPI DestroyHandoffTable(LPHANDOFFTABLE hTable); | 
|  | BOOLEAN WINAPI IsRawIPXEnabled(LPSTR secName,LPSTR iniFile,LPSTR CurProtocol); | 
|  |  | 
|  | #define EXPERTSTRINGLENGTH (260) | 
|  | #define EXPERTGROUPNAMELENGTH (25) | 
|  |  | 
|  | typedef LPVOID HEXPERTKEY; | 
|  | typedef HEXPERTKEY *PHEXPERTKEY; | 
|  | typedef LPVOID HEXPERT; | 
|  | typedef HEXPERT *PHEXPERT; | 
|  | typedef LPVOID HRUNNINGEXPERT; | 
|  | typedef HRUNNINGEXPERT *PHRUNNINGEXPERT; | 
|  | typedef struct _EXPERTENUMINFO *PEXPERTENUMINFO; | 
|  | typedef struct _EXPERTCONFIG *PEXPERTCONFIG; | 
|  | typedef struct _EXPERTSTARTUPINFO *PEXPERTSTARTUPINFO; | 
|  |  | 
|  | #define EXPERTENTRY_REGISTER "Register" | 
|  | #define EXPERTENTRY_CONFIGURE "Configure" | 
|  | #define EXPERTENTRY_RUN "Run" | 
|  | typedef WINBOOL (WINAPI *PEXPERTREGISTERPROC)(PEXPERTENUMINFO); | 
|  | typedef WINBOOL (WINAPI *PEXPERTCONFIGPROC) (HEXPERTKEY,PEXPERTCONFIG*,PEXPERTSTARTUPINFO,DWORD,HWND); | 
|  | typedef WINBOOL (WINAPI *PEXPERTRUNPROC) (HEXPERTKEY,PEXPERTCONFIG,PEXPERTSTARTUPINFO,DWORD,HWND); | 
|  |  | 
|  | typedef struct _EXPERTENUMINFO { | 
|  | char szName[EXPERTSTRINGLENGTH]; | 
|  | char szVendor[EXPERTSTRINGLENGTH]; | 
|  | char szDescription[EXPERTSTRINGLENGTH]; | 
|  | DWORD Version; | 
|  | DWORD Flags; | 
|  | char szDllName[MAX_PATH]; | 
|  | HEXPERT hExpert; | 
|  | HINSTANCE hModule; | 
|  | PEXPERTREGISTERPROC pRegisterProc; | 
|  | PEXPERTCONFIGPROC pConfigProc; | 
|  | PEXPERTRUNPROC pRunProc; | 
|  | } EXPERTENUMINFO; | 
|  |  | 
|  | typedef EXPERTENUMINFO *PEXPERTENUMINFO; | 
|  |  | 
|  | #define EXPERT_ENUM_FLAG_CONFIGURABLE (0x1) | 
|  | #define EXPERT_ENUM_FLAG_VIEWER_PRIVATE (0x2) | 
|  | #define EXPERT_ENUM_FLAG_NO_VIEWER (0x4) | 
|  | #define EXPERT_ENUM_FLAG_ADD_ME_TO_RMC_IN_SUMMARY (0x10) | 
|  | #define EXPERT_ENUM_FLAG_ADD_ME_TO_RMC_IN_DETAIL (0x20) | 
|  |  | 
|  | typedef struct _EXPERTSTARTUPINFO { | 
|  | DWORD Flags; | 
|  | HCAPTURE hCapture; | 
|  | char szCaptureFile[MAX_PATH]; | 
|  | DWORD dwFrameNumber; | 
|  | HPROTOCOL hProtocol; | 
|  | LPPROPERTYINST lpPropertyInst; | 
|  | struct { | 
|  | BYTE BitNumber; | 
|  | WINBOOL bOn; | 
|  | } sBitfield; | 
|  | } EXPERTSTARTUPINFO; | 
|  |  | 
|  | typedef struct _EXPERTCONFIG { | 
|  | DWORD RawConfigLength; | 
|  | BYTE RawConfigData[0]; | 
|  | } EXPERTCONFIG; | 
|  |  | 
|  | typedef EXPERTCONFIG *PEXPERTCONFIG; | 
|  |  | 
|  | typedef struct { | 
|  | HEXPERT hExpert; | 
|  | DWORD StartupFlags; | 
|  | PEXPERTCONFIG pConfig; | 
|  | } CONFIGUREDEXPERT; | 
|  |  | 
|  | typedef CONFIGUREDEXPERT *PCONFIGUREDEXPERT; | 
|  |  | 
|  | typedef struct { | 
|  | DWORD FrameNumber; | 
|  | HFRAME hFrame; | 
|  | ULPFRAME pFrame; | 
|  | LPRECOGNIZEDATATABLE lpRecognizeDataTable; | 
|  | LPPROPERTYTABLE lpPropertyTable; | 
|  | } EXPERTFRAMEDESCRIPTOR; | 
|  |  | 
|  | typedef EXPERTFRAMEDESCRIPTOR *LPEXPERTFRAMEDESCRIPTOR; | 
|  |  | 
|  | #define GET_SPECIFIED_FRAME (0) | 
|  | #define GET_FRAME_NEXT_FORWARD (1) | 
|  | #define GET_FRAME_NEXT_BACKWARD (2) | 
|  | #define FLAGS_DEFER_TO_UI_FILTER (0x1) | 
|  | #define FLAGS_ATTACH_PROPERTIES (0x2) | 
|  |  | 
|  | typedef enum __MIDL___MIDL_itf_netmon_0000_0016 { | 
|  | EXPERTSTATUS_INACTIVE = 0,EXPERTSTATUS_STARTING,EXPERTSTATUS_RUNNING, | 
|  | EXPERTSTATUS_PROBLEM,EXPERTSTATUS_ABORTED,EXPERTSTATUS_DONE | 
|  | } EXPERTSTATUSENUMERATION; | 
|  |  | 
|  | #define EXPERTSUBSTATUS_ABORTED_USER (0x1) | 
|  | #define EXPERTSUBSTATUS_ABORTED_LOAD_FAIL (0x2) | 
|  | #define EXPERTSUBSTATUS_ABORTED_THREAD_FAIL (0x4) | 
|  | #define EXPERTSUBSTATUS_ABORTED_BAD_ENTRY (0x8) | 
|  |  | 
|  | typedef struct __MIDL___MIDL_itf_netmon_0000_0017 { | 
|  | EXPERTSTATUSENUMERATION Status; | 
|  | DWORD SubStatus; | 
|  | DWORD PercentDone; | 
|  | DWORD Frame; | 
|  | char szStatusText[260]; | 
|  | } EXPERTSTATUS; | 
|  |  | 
|  | typedef EXPERTSTATUS *PEXPERTSTATUS; | 
|  |  | 
|  | #define EXPERT_STARTUP_FLAG_USE_STARTUP_DATA_OVER_CONFIG_DATA (0x1) | 
|  | #define INVALID_FRAME_NUMBER ((DWORD)-1) | 
|  | #define CAPTUREFILE_OPEN OPEN_EXISTING | 
|  | #define CAPTUREFILE_CREATE CREATE_NEW | 
|  |  | 
|  | LPSYSTEMTIME WINAPI GetCaptureTimeStamp(HCAPTURE hCapture); | 
|  | DWORD WINAPI GetCaptureMacType(HCAPTURE hCapture); | 
|  | DWORD WINAPI GetCaptureTotalFrames(HCAPTURE hCapture); | 
|  | LPSTR WINAPI GetCaptureComment(HCAPTURE hCapture); | 
|  | DWORD WINAPI MacTypeToAddressType(DWORD MacType); | 
|  | DWORD WINAPI AddressTypeToMacType(DWORD AddressType); | 
|  | DWORD WINAPI GetFrameDstAddressOffset(HFRAME hFrame,DWORD AddressType,LPDWORD AddressLength); | 
|  | DWORD WINAPI GetFrameSrcAddressOffset(HFRAME hFrame,DWORD AddressType,LPDWORD AddressLength); | 
|  | HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME hFrame); | 
|  | DWORD WINAPI GetFrameDestAddress(HFRAME hFrame,LPADDRESS2 lpAddress,DWORD AddressType,DWORD Flags); | 
|  | DWORD WINAPI GetFrameSourceAddress(HFRAME hFrame,LPADDRESS2 lpAddress,DWORD AddressType,DWORD Flags); | 
|  | DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame); | 
|  | WINBOOL WINAPI CompareFrameDestAddress(HFRAME hFrame,LPADDRESS2 lpAddress); | 
|  | WINBOOL WINAPI CompareFrameSourceAddress(HFRAME hFrame,LPADDRESS2 lpAddress); | 
|  | DWORD WINAPI GetFrameLength(HFRAME hFrame); | 
|  | DWORD WINAPI GetFrameStoredLength(HFRAME hFrame); | 
|  | DWORD WINAPI GetFrameMacType(HFRAME hFrame); | 
|  | DWORD WINAPI GetFrameMacHeaderLength(HFRAME hFrame); | 
|  | DWORD WINAPI GetFrameNumber(HFRAME hFrame); | 
|  | __MINGW_EXTENSION __int64 WINAPI GetFrameTimeStamp(HFRAME hFrame); | 
|  | ULPFRAME WINAPI GetFrameFromFrameHandle(HFRAME hFrame); | 
|  | __MINGW_EXTENSION HFRAME WINAPI ModifyFrame(HCAPTURE hCapture,DWORD FrameNumber,LPBYTE FrameData,DWORD FrameLength,__int64 TimeStamp); | 
|  | HFRAME WINAPI FindNextFrame(HFRAME hCurrentFrame,LPSTR ProtocolName,LPADDRESS2 lpDestAddress,LPADDRESS2 lpSrcAddress,LPWORD ProtocolOffset,DWORD OriginalFrameNumber,DWORD nHighestFrame); | 
|  | HFRAME WINAPI FindPreviousFrame(HFRAME hCurrentFrame,LPSTR ProtocolName,LPADDRESS2 lpDstAddress,LPADDRESS2 lpSrcAddress,LPWORD ProtocolOffset,DWORD OriginalFrameNumber,DWORD nLowestFrame); | 
|  | HCAPTURE WINAPI GetFrameCaptureHandle(HFRAME); | 
|  | HFRAME WINAPI GetFrame(HCAPTURE hCapture,DWORD FrameNumber); | 
|  | LPRECOGNIZEDATATABLE WINAPI GetFrameRecognizeData(HFRAME hFrame); | 
|  | HPROTOCOL WINAPI CreateProtocol(LPSTR ProtocolName,LPENTRYPOINTS lpEntryPoints,DWORD cbEntryPoints); | 
|  | VOID WINAPI DestroyProtocol(HPROTOCOL hProtocol); | 
|  | LPPROTOCOLINFO WINAPI GetProtocolInfo(HPROTOCOL hProtocol); | 
|  | HPROPERTY WINAPI GetProperty(HPROTOCOL hProtocol,LPSTR PropertyName); | 
|  | HPROTOCOL WINAPI GetProtocolFromName(LPSTR ProtocolName); | 
|  | DWORD WINAPI GetProtocolStartOffset(HFRAME hFrame,LPSTR ProtocolName); | 
|  | DWORD WINAPI GetProtocolStartOffsetHandle(HFRAME hFrame,HPROTOCOL hProtocol); | 
|  | DWORD WINAPI GetPreviousProtocolOffsetByName(HFRAME hFrame,DWORD dwStartOffset,LPSTR szProtocolName,DWORD *pdwPreviousOffset); | 
|  | LPPROTOCOLTABLE WINAPI GetEnabledProtocols(HCAPTURE hCapture); | 
|  | DWORD WINAPI CreatePropertyDatabase(HPROTOCOL hProtocol,DWORD nProperties); | 
|  | DWORD WINAPI DestroyPropertyDatabase(HPROTOCOL hProtocol); | 
|  | HPROPERTY WINAPI AddProperty(HPROTOCOL hProtocol,LPPROPERTYINFO PropertyInfo); | 
|  | WINBOOL WINAPI AttachPropertyInstance(HFRAME hFrame,HPROPERTY hProperty,DWORD Length,ULPVOID lpData,DWORD HelpID,DWORD Level,DWORD IFlags); | 
|  | WINBOOL WINAPI AttachPropertyInstanceEx(HFRAME hFrame,HPROPERTY hProperty,DWORD Length,ULPVOID lpData,DWORD ExLength,ULPVOID lpExData,DWORD HelpID,DWORD Level,DWORD IFlags); | 
|  | LPPROPERTYINST WINAPI FindPropertyInstance(HFRAME hFrame,HPROPERTY hProperty); | 
|  | LPPROPERTYINST WINAPI FindPropertyInstanceRestart (HFRAME hFrame,HPROPERTY hProperty,LPPROPERTYINST *lpRestartKey,WINBOOL DirForward); | 
|  | LPPROPERTYINFO WINAPI GetPropertyInfo(HPROPERTY hProperty); | 
|  | LPSTR WINAPI GetPropertyText(HFRAME hFrame,LPPROPERTYINST lpPI,LPSTR szBuffer,DWORD BufferSize); | 
|  | DWORD WINAPI ResetPropertyInstanceLength(LPPROPERTYINST lpProp,WORD nOrgLen,WORD nNewLen); | 
|  | DWORD WINAPI GetCaptureCommentFromFilename(LPSTR lpFilename,LPSTR lpComment,DWORD BufferSize); | 
|  | int WINAPI CompareAddresses(LPADDRESS2 lpAddress1,LPADDRESS2 lpAddress2); | 
|  | DWORD WINAPIV FormatPropertyInstance(LPPROPERTYINST lpPropertyInst,...); | 
|  | __MINGW_EXTENSION SYSTEMTIME *WINAPI AdjustSystemTime(SYSTEMTIME *SystemTime,__int64 TimeDelta); | 
|  | LPSTR WINAPI NMRtlIpv6AddressToStringA(const BYTE IP6Addr[],LPSTR S); | 
|  | LPWSTR WINAPI NMRtlIpv6AddressToStringW(const BYTE IP6Addr[],LPWSTR S); | 
|  | ULONG WINAPI NMRtlIpv6StringToAddressA(LPCSTR S,LPCSTR *Terminator,BYTE IP6Addr[]); | 
|  | ULONG WINAPI NMRtlIpv6StringToAddressW(LPCWSTR S,LPCWSTR *Terminator,BYTE IP6Addr[]); | 
|  | DWORD WINAPI ExpertGetFrame(HEXPERTKEY hExpertKey,DWORD Direction,DWORD RequestFlags,DWORD RequestedFrameNumber,HFILTER hFilter,LPEXPERTFRAMEDESCRIPTOR pEFrameDescriptor); | 
|  | LPVOID WINAPI ExpertAllocMemory(HEXPERTKEY hExpertKey,SIZE_T nBytes,DWORD *pError); | 
|  | LPVOID WINAPI ExpertReallocMemory(HEXPERTKEY hExpertKey,LPVOID pOriginalMemory,SIZE_T nBytes,DWORD *pError); | 
|  | DWORD WINAPI ExpertFreeMemory(HEXPERTKEY hExpertKey,LPVOID pOriginalMemory); | 
|  | SIZE_T WINAPI ExpertMemorySize(HEXPERTKEY hExpertKey,LPVOID pOriginalMemory); | 
|  | DWORD WINAPI ExpertIndicateStatus(HEXPERTKEY hExpertKey,EXPERTSTATUSENUMERATION Status,DWORD SubStatus,const char *szText,LONG PercentDone); | 
|  | DWORD WINAPI ExpertSubmitEvent(HEXPERTKEY hExpertKey,PNMEVENTDATA pExpertEvent); | 
|  | DWORD WINAPI ExpertGetStartupInfo(HEXPERTKEY hExpertKey,PEXPERTSTARTUPINFO pExpertStartupInfo); | 
|  |  | 
|  | #define INITIAL_RESTART_KEY (0xffffffff) | 
|  |  | 
|  | DWORD __cdecl CreateBlob(HBLOB *phBlob); | 
|  | DWORD __cdecl DestroyBlob(HBLOB hBlob); | 
|  | DWORD __cdecl SetStringInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const char *pString); | 
|  | DWORD __cdecl SetWStringInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const WCHAR *pwString); | 
|  | DWORD __cdecl ConvertWStringToHexString(const WCHAR *pwsz,char **ppsz); | 
|  | DWORD __cdecl GetStringFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const char **ppString); | 
|  | DWORD __cdecl ConvertHexStringToWString(CHAR *psz,WCHAR **ppwsz); | 
|  | DWORD __cdecl GetWStringFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,WCHAR **ppwString); | 
|  | 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); | 
|  | DWORD __cdecl RemoveFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName); | 
|  | DWORD __cdecl LockBlob(HBLOB hBlob); | 
|  | DWORD __cdecl UnlockBlob(HBLOB hBlob); | 
|  | DWORD __cdecl FindUnknownBlobCategories(HBLOB hBlob,const char *pOwnerName,const char *pKnownCategoriesTable[],HBLOB hUnknownCategoriesBlob); | 
|  | DWORD __cdecl MergeBlob(HBLOB hDstBlob,HBLOB hSrcBlob); | 
|  | DWORD __cdecl DuplicateBlob (HBLOB hSrcBlob,HBLOB *hBlobThatWillBeCreated); | 
|  | DWORD __cdecl WriteBlobToFile(HBLOB hBlob,const char *pFileName); | 
|  | DWORD __cdecl ReadBlobFromFile(HBLOB *phBlob,const char *pFileName); | 
|  | DWORD __cdecl RegCreateBlobKey(HKEY hkey,const char *szBlobName,HBLOB hBlob); | 
|  | DWORD __cdecl RegOpenBlobKey(HKEY hkey,const char *szBlobName,HBLOB *phBlob); | 
|  | DWORD __cdecl MarshalBlob(HBLOB hBlob,DWORD *pSize,BYTE **ppBytes); | 
|  | DWORD __cdecl UnMarshalBlob(HBLOB *phBlob,DWORD Size,BYTE *pBytes); | 
|  | DWORD __cdecl SetDwordInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,DWORD Dword); | 
|  | DWORD __cdecl GetDwordFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,DWORD *pDword); | 
|  | DWORD __cdecl SetBoolInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,WINBOOL Bool); | 
|  | DWORD __cdecl GetBoolFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,WINBOOL *pBool); | 
|  | DWORD __cdecl GetMacAddressFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,BYTE *pMacAddress); | 
|  | DWORD __cdecl SetMacAddressInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const BYTE *pMacAddress); | 
|  | DWORD __cdecl FindUnknownBlobTags(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pKnownTagsTable[],HBLOB hUnknownTagsBlob); | 
|  | DWORD __cdecl SetNetworkInfoInBlob(HBLOB hBlob,LPNETWORKINFO lpNetworkInfo); | 
|  | DWORD __cdecl GetNetworkInfoFromBlob(HBLOB hBlob,LPNETWORKINFO lpNetworkInfo); | 
|  | DWORD __cdecl CreateNPPInterface (HBLOB hBlob,REFIID iid,void **ppvObject); | 
|  | DWORD __cdecl SetClassIDInBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,const CLSID *pClsID); | 
|  | DWORD __cdecl GetClassIDFromBlob(HBLOB hBlob,const char *pOwnerName,const char *pCategoryName,const char *pTagName,CLSID *pClsID); | 
|  | DWORD __cdecl SetNPPPatternFilterInBlob(HBLOB hBlob,LPEXPRESSION pExpression,HBLOB hErrorBlob); | 
|  | DWORD __cdecl GetNPPPatternFilterFromBlob(HBLOB hBlob,LPEXPRESSION pExpression,HBLOB hErrorBlob); | 
|  | DWORD __cdecl SetNPPAddress2FilterInBlob(HBLOB hBlob,LPADDRESSTABLE2 pAddressTable); | 
|  | DWORD __cdecl GetNPPAddress2FilterFromBlob(HBLOB hBlob,LPADDRESSTABLE2 pAddressTable,HBLOB hErrorBlob); | 
|  | DWORD __cdecl SetNPPTriggerInBlob(HBLOB hBlob,LPTRIGGER pTrigger,HBLOB hErrorBlob); | 
|  | DWORD __cdecl GetNPPTriggerFromBlob(HBLOB hBlob,LPTRIGGER pTrigger,HBLOB hErrorBlob); | 
|  | DWORD __cdecl SetNPPEtypeSapFilter(HBLOB hBlob,WORD nSaps,WORD nEtypes,LPBYTE lpSapTable,LPWORD lpEtypeTable,DWORD FilterFlags,HBLOB hErrorBlob); | 
|  | DWORD __cdecl GetNPPEtypeSapFilter(HBLOB hBlob,WORD *pnSaps,WORD *pnEtypes,LPBYTE *ppSapTable,LPWORD *ppEtypeTable,DWORD *pFilterFlags,HBLOB hErrorBlob); | 
|  | DWORD __cdecl GetNPPMacTypeAsNumber(HBLOB hBlob,LPDWORD lpMacType); | 
|  | WINBOOL __cdecl IsRemoteNPP (HBLOB hBLOB); | 
|  |  | 
|  | #define OWNER_NPP "NPP" | 
|  |  | 
|  | #define CATEGORY_NETWORKINFO "NetworkInfo" | 
|  | #define TAG_MACTYPE "MacType" | 
|  | #define TAG_CURRENTADDRESS "CurrentAddress" | 
|  | #define TAG_LINKSPEED "LinkSpeed" | 
|  | #define TAG_MAXFRAMESIZE "MaxFrameSize" | 
|  | #define TAG_FLAGS "Flags" | 
|  | #define TAG_TIMESTAMPSCALEFACTOR "TimeStampScaleFactor" | 
|  | #define TAG_COMMENT "Comment" | 
|  | #define TAG_NODENAME "NodeName" | 
|  | #define TAG_NAME "Name" | 
|  | #define TAG_FAKENPP "Fake" | 
|  | #define TAG_PROMISCUOUS_MODE "PMode" | 
|  |  | 
|  | #define CATEGORY_LOCATION "Location" | 
|  | #define TAG_RAS "Dial-up Connection" | 
|  | #define TAG_MACADDRESS "MacAddress" | 
|  | #define TAG_CLASSID "ClassID" | 
|  | #define TAG_NAME "Name" | 
|  | #define TAG_CONNECTIONNAME "Connection Name" | 
|  | #define TAG_FRIENDLYNAME "Friendly Name" | 
|  |  | 
|  | #define CATEGORY_CONFIG "Config" | 
|  | #define TAG_FRAME_SIZE "FrameSize" | 
|  | #define TAG_UPDATE_FREQUENCY "UpdateFreq" | 
|  | #define TAG_BUFFER_SIZE "BufferSize" | 
|  | #define TAG_PATTERN_DESIGNATOR "PatternMatch" | 
|  | #define TAG_PATTERN "Pattern" | 
|  | #define TAG_ADDRESS_PAIR "AddressPair" | 
|  | #define TAG_CONNECTIONFLAGS "ConnectionFlags" | 
|  | #define TAG_ETYPES "Etypes" | 
|  | #define TAG_SAPS "Saps" | 
|  | #define TAG_NO_CONVERSATION_STATS "NoConversationStats" | 
|  | #define TAG_NO_STATS_FRAME "NoStatsFrame" | 
|  | #define TAG_DONT_DELETE_EMPTY_CAPTURE "DontDeleteEmptyCapture" | 
|  | #define TAG_WANT_PROTOCOL_INFO "WantProtocolInfo" | 
|  | #define TAG_INTERFACE_DELAYED_CAPTURE "IDdC" | 
|  | #define TAG_INTERFACE_REALTIME_CAPTURE "IRTC" | 
|  | #define TAG_INTERFACE_STATS "ISts" | 
|  | #define TAG_INTERFACE_TRANSMIT "IXmt" | 
|  | #define TAG_LOCAL_ONLY "LocalOnly" | 
|  |  | 
|  | #define TAG_IS_REMOTE "IsRemote" | 
|  |  | 
|  | #define CATEGORY_TRIGGER "Trigger" | 
|  | #define TAG_TRIGGER "Trigger" | 
|  |  | 
|  | #define CATEGORY_FINDER "Finder" | 
|  | #define TAG_ROOT "Root" | 
|  | #define TAG_PROCNAME "ProcName" | 
|  | #define TAG_DISP_STRING "Display" | 
|  | #define TAG_DLL_FILENAME "DLLName" | 
|  | #define TAG_GET_SPECIAL_BLOBS "Specials" | 
|  |  | 
|  | #define CATEGORY_REMOTE "Remote" | 
|  | #define TAG_REMOTECOMPUTER "RemoteComputer" | 
|  | #define TAG_REMOTECLASSID "ClassID" | 
|  |  | 
|  | #define PROTOCOL_STRING_ETHERNET_TXT "ETHERNET" | 
|  | #define PROTOCOL_STRING_TOKENRING_TXT "TOKENRING" | 
|  | #define PROTOCOL_STRING_FDDI_TXT "FDDI" | 
|  | #define PROTOCOL_STRING_ATM_TXT "ATM" | 
|  | #define PROTOCOL_STRING_1394_TXT "IP/1394" | 
|  |  | 
|  | #define PROTOCOL_STRING_IP_TXT "IP" | 
|  | #define PROTOCOL_STRING_IP6_TXT "IP6" | 
|  | #define PROTOCOL_STRING_IPX_TXT "IPX" | 
|  | #define PROTOCOL_STRING_XNS_TXT "XNS" | 
|  | #define PROTOCOL_STRING_VINES_IP_TXT "VINES IP" | 
|  |  | 
|  | #define PROTOCOL_STRING_ICMP_TXT "ICMP" | 
|  | #define PROTOCOL_STRING_TCP_TXT "TCP" | 
|  | #define PROTOCOL_STRING_UDP_TXT "UDP" | 
|  | #define PROTOCOL_STRING_SPX_TXT "SPX" | 
|  | #define PROTOCOL_STRING_NCP_TXT "NCP" | 
|  |  | 
|  | #define PROTOCOL_STRING_ANY_TXT "ANY" | 
|  | #define PROTOCOL_STRING_ANY_GROUP_TXT "ANY GROUP" | 
|  | #define PROTOCOL_STRING_HIGHEST_TXT "HIGHEST" | 
|  | #define PROTOCOL_STRING_LOCAL_ONLY_TXT "LOCAL ONLY" | 
|  | #define PROTOCOL_STRING_UNKNOWN_TXT "UNKNOWN" | 
|  | #define PROTOCOL_STRING_DATA_TXT "DATA" | 
|  | #define PROTOCOL_STRING_FRAME_TXT "FRAME" | 
|  | #define PROTOCOL_STRING_NONE_TXT "NONE" | 
|  | #define PROTOCOL_STRING_EFFECTIVE_TXT "EFFECTIVE" | 
|  |  | 
|  | #define ADDRESS_PAIR_INCLUDE_TXT "INCLUDE" | 
|  | #define ADDRESS_PAIR_EXCLUDE_TXT "EXCLUDE" | 
|  |  | 
|  | #define INCLUDE_ALL_EXCEPT_TXT "INCLUDE ALL EXCEPT" | 
|  | #define EXCLUDE_ALL_EXCEPT_TXT "EXCLUDE ALL EXCEPT" | 
|  |  | 
|  | #define PATTERN_MATCH_OR_TXT "OR(" | 
|  | #define PATTERN_MATCH_AND_TXT "AND(" | 
|  |  | 
|  | #define TRIGGER_PATTERN_TXT "PATTERN MATCH" | 
|  | #define TRIGGER_BUFFER_TXT "BUFFER CONTENT" | 
|  |  | 
|  | #define TRIGGER_NOTIFY_TXT "NOTIFY" | 
|  | #define TRIGGER_STOP_TXT "STOP" | 
|  | #define TRIGGER_PAUSE_TXT "PAUSE" | 
|  |  | 
|  | #define TRIGGER_25_PERCENT_TXT "25 PERCENT" | 
|  | #define TRIGGER_50_PERCENT_TXT "50 PERCENT" | 
|  | #define TRIGGER_75_PERCENT_TXT "75 PERCENT" | 
|  | #define TRIGGER_100_PERCENT_TXT "100 PERCENT" | 
|  |  | 
|  | #define PATTERN_MATCH_NOT_TXT "NOT" | 
|  |  | 
|  | LPCSTR __cdecl FindOneOf(LPCSTR p1,LPCSTR p2); | 
|  | LONG __cdecl recursiveDeleteKey(HKEY hKeyParent,const char *lpszKeyChild); | 
|  | WINBOOL __cdecl SubkeyExists(const char *pszPath,const char *szSubkey); | 
|  | WINBOOL __cdecl setKeyAndValue(const char *szKey,const char *szSubkey,const char *szValue,const char *szName); | 
|  |  | 
|  | #pragma pack(push,1) | 
|  |  | 
|  | typedef struct _IP { | 
|  | __C89_NAMELESS union { | 
|  | BYTE Version; | 
|  | BYTE HdrLen; | 
|  | }; | 
|  | BYTE ServiceType; | 
|  | WORD TotalLen; | 
|  | WORD ID; | 
|  | __C89_NAMELESS union { | 
|  | WORD Flags; | 
|  | WORD FragOff; | 
|  | }; | 
|  | BYTE TimeToLive; | 
|  | BYTE Protocol; | 
|  | WORD HdrChksum; | 
|  | DWORD SrcAddr; | 
|  | DWORD DstAddr; | 
|  | BYTE Options[0]; | 
|  | } IP; | 
|  |  | 
|  | typedef IP *LPIP; | 
|  | typedef IP UNALIGNED *ULPIP; | 
|  |  | 
|  | typedef struct _PSUHDR { | 
|  | DWORD ph_SrcIP; | 
|  | DWORD ph_DstIP; | 
|  | UCHAR ph_Zero; | 
|  | UCHAR ph_Proto; | 
|  | WORD ph_ProtLen; | 
|  | } PSUHDR; | 
|  |  | 
|  | typedef PSUHDR UNALIGNED *LPPSUHDR; | 
|  |  | 
|  | #define IP_VERSION_MASK ((BYTE) 0xf0) | 
|  | #define IP_VERSION_SHIFT (4) | 
|  | #define IP_HDRLEN_MASK ((BYTE) 0x0f) | 
|  | #define IP_HDRLEN_SHIFT (0) | 
|  | #define IP_PRECEDENCE_MASK ((BYTE) 0xE0) | 
|  | #define IP_PRECEDENCE_SHIFT (5) | 
|  | #define IP_TOS_MASK ((BYTE) 0x1E) | 
|  | #define IP_TOS_SHIFT (1) | 
|  | #define IP_DELAY_MASK ((BYTE) 0x10) | 
|  | #define IP_THROUGHPUT_MASK ((BYTE) 0x08) | 
|  | #define IP_RELIABILITY_MASK ((BYTE) 0x04) | 
|  | #define IP_FLAGS_MASK ((BYTE) 0xE0) | 
|  | #define IP_FLAGS_SHIFT (13) | 
|  | #define IP_DF_MASK ((BYTE) 0x40) | 
|  | #define IP_MF_MASK ((BYTE) 0x20) | 
|  | #define IP_MF_SHIFT (5) | 
|  | #define IP_FRAGOFF_MASK ((WORD) 0x1FFF) | 
|  | #define IP_FRAGOFF_SHIFT (3) | 
|  | #define IP_TCC_MASK ((DWORD) 0xFFFFFF00) | 
|  | #define IP_TIME_OPTS_MASK ((BYTE) 0x0F) | 
|  | #define IP_MISS_STNS_MASK ((BYTE) 0xF0) | 
|  |  | 
|  | #define IP_TIME_OPTS_SHIFT (0) | 
|  | #define IP_MISS_STNS_SHIFT (4) | 
|  |  | 
|  | #define IP_CHKSUM_OFF 10 | 
|  |  | 
|  | #ifndef __CRT__NO_INLINE | 
|  | INLINE BYTE IP_Version(ULPIP pIP) { return (pIP->Version & IP_VERSION_MASK) >> IP_VERSION_SHIFT; } | 
|  | INLINE DWORD IP_HdrLen(ULPIP pIP) { return ((pIP->HdrLen & IP_HDRLEN_MASK) >> IP_HDRLEN_SHIFT) << 2; } | 
|  | INLINE WORD IP_FragOff(ULPIP pIP) { return (XCHG(pIP->FragOff) & IP_FRAGOFF_MASK) << IP_FRAGOFF_SHIFT; } | 
|  | INLINE DWORD IP_TotalLen(ULPIP pIP) { return XCHG(pIP->TotalLen); } | 
|  | INLINE DWORD IP_MoreFragments(ULPIP pIP) { return (pIP->Flags & IP_MF_MASK) >> IP_MF_SHIFT; } | 
|  | #endif | 
|  |  | 
|  | #define PORT_TCPMUX 1 | 
|  | #define PORT_RJE 5 | 
|  | #define PORT_ECHO 7 | 
|  | #define PORT_DISCARD 9 | 
|  | #define PORT_USERS 11 | 
|  | #define PORT_DAYTIME 13 | 
|  | #define PORT_NETSTAT 15 | 
|  | #define PORT_QUOTE 17 | 
|  | #define PORT_CHARGEN 19 | 
|  | #define PORT_FTPDATA 20 | 
|  | #define PORT_FTP 21 | 
|  | #define PORT_TELNET 23 | 
|  | #define PORT_SMTP 25 | 
|  | #define PORT_NSWFE 27 | 
|  | #define PORT_MSGICP 29 | 
|  | #define PORT_MSGAUTH 31 | 
|  | #define PORT_DSP 33 | 
|  | #define PORT_PRTSERVER 35 | 
|  | #define PORT_TIME 37 | 
|  | #define PORT_RLP 39 | 
|  | #define PORT_GRAPHICS 41 | 
|  | #define PORT_NAMESERVER 42 | 
|  | #define PORT_NICNAME 43 | 
|  | #define PORT_MPMFLAGS 44 | 
|  | #define PORT_MPM 45 | 
|  | #define PORT_MPMSND 46 | 
|  | #define PORT_NIFTP 47 | 
|  | #define PORT_LOGIN 49 | 
|  | #define PORT_LAMAINT 51 | 
|  | #define PORT_DOMAIN 53 | 
|  | #define PORT_ISIGL 55 | 
|  | #define PORT_ANYTERMACC 57 | 
|  | #define PORT_ANYFILESYS 59 | 
|  | #define PORT_NIMAIL 61 | 
|  | #define PORT_VIAFTP 63 | 
|  | #define PORT_TACACSDS 65 | 
|  | #define PORT_BOOTPS 67 | 
|  | #define PORT_BOOTPC 68 | 
|  | #define PORT_TFTP 69 | 
|  | #define PORT_NETRJS1 71 | 
|  | #define PORT_NETRJS2 72 | 
|  | #define PORT_NETRJS3 73 | 
|  | #define PORT_NETRJS4 74 | 
|  | #define PORT_ANYDIALOUT 75 | 
|  | #define PORT_ANYRJE 77 | 
|  | #define PORT_FINGER 79 | 
|  | #define PORT_HTTP 80 | 
|  | #define PORT_HOSTS2NS 81 | 
|  | #define PORT_MITMLDEV1 83 | 
|  | #define PORT_MITMLDEV2 85 | 
|  | #define PORT_ANYTERMLINK 87 | 
|  | #define PORT_SUMITTG 89 | 
|  | #define PORT_MITDOV 91 | 
|  | #define PORT_DCP 93 | 
|  | #define PORT_SUPDUP 95 | 
|  | #define PORT_SWIFTRVF 97 | 
|  | #define PORT_TACNEWS 98 | 
|  | #define PORT_METAGRAM 99 | 
|  | #define PORT_NEWACCT 100 | 
|  | #define PORT_HOSTNAME 101 | 
|  | #define PORT_ISOTSAP 102 | 
|  | #define PORT_X400 103 | 
|  | #define PORT_X400SND 104 | 
|  | #define PORT_CSNETNS 105 | 
|  | #define PORT_RTELNET 107 | 
|  | #define PORT_POP2 109 | 
|  | #define PORT_POP3 110 | 
|  | #define PORT_SUNRPC 111 | 
|  | #define PORT_AUTH 113 | 
|  | #define PORT_SFTP 115 | 
|  | #define PORT_UUCPPATH 117 | 
|  | #define PORT_NNTP 119 | 
|  | #define PORT_ERPC 121 | 
|  | #define PORT_NTP 123 | 
|  | #define PORT_LOCUSMAP 125 | 
|  | #define PORT_LOCUSCON 127 | 
|  | #define PORT_PWDGEN 129 | 
|  | #define PORT_CISCOFNA 130 | 
|  | #define PORT_CISCOTNA 131 | 
|  | #define PORT_CISCOSYS 132 | 
|  | #define PORT_STATSRV 133 | 
|  | #define PORT_INGRESNET 134 | 
|  | #define PORT_LOCSRV 135 | 
|  | #define PORT_PROFILE 136 | 
|  | #define PORT_NETBIOSNS 137 | 
|  | #define PORT_NETBIOSDGM 138 | 
|  | #define PORT_NETBIOSSSN 139 | 
|  | #define PORT_EMFISDATA 140 | 
|  | #define PORT_EMFISCNTL 141 | 
|  | #define PORT_BLIDM 142 | 
|  | #define PORT_IMAP2 143 | 
|  | #define PORT_NEWS 144 | 
|  | #define PORT_UAAC 145 | 
|  | #define PORT_ISOTP0 146 | 
|  | #define PORT_ISOIP 147 | 
|  | #define PORT_CRONUS 148 | 
|  | #define PORT_AED512 149 | 
|  | #define PORT_SQLNET 150 | 
|  | #define PORT_HEMS 151 | 
|  | #define PORT_BFTP 152 | 
|  | #define PORT_SGMP 153 | 
|  | #define PORT_NETSCPROD 154 | 
|  | #define PORT_NETSCDEV 155 | 
|  | #define PORT_SQLSRV 156 | 
|  | #define PORT_KNETCMP 157 | 
|  | #define PORT_PCMAILSRV 158 | 
|  | #define PORT_NSSROUTING 159 | 
|  | #define PORT_SGMPTRAPS 160 | 
|  | #define PORT_SNMP 161 | 
|  | #define PORT_SNMPTRAP 162 | 
|  | #define PORT_CMIPMANAGE 163 | 
|  | #define PORT_CMIPAGENT 164 | 
|  | #define PORT_XNSCOURIER 165 | 
|  | #define PORT_SNET 166 | 
|  | #define PORT_NAMP 167 | 
|  | #define PORT_RSVD 168 | 
|  | #define PORT_SEND 169 | 
|  | #define PORT_PRINTSRV 170 | 
|  | #define PORT_MULTIPLEX 171 | 
|  | #define PORT_CL1 172 | 
|  | #define PORT_XYPLEXMUX 173 | 
|  | #define PORT_MAILQ 174 | 
|  | #define PORT_VMNET 175 | 
|  | #define PORT_GENRADMUX 176 | 
|  | #define PORT_XDMCP 177 | 
|  | #define PORT_NEXTSTEP 178 | 
|  | #define PORT_BGP 179 | 
|  | #define PORT_RIS 180 | 
|  | #define PORT_UNIFY 181 | 
|  | #define PORT_UNISYSCAM 182 | 
|  | #define PORT_OCBINDER 183 | 
|  | #define PORT_OCSERVER 184 | 
|  | #define PORT_REMOTEKIS 185 | 
|  | #define PORT_KIS 186 | 
|  | #define PORT_ACI 187 | 
|  | #define PORT_MUMPS 188 | 
|  | #define PORT_QFT 189 | 
|  | #define PORT_GACP 190 | 
|  | #define PORT_PROSPERO 191 | 
|  | #define PORT_OSUNMS 192 | 
|  | #define PORT_SRMP 193 | 
|  | #define PORT_IRC 194 | 
|  | #define PORT_DN6NLMAUD 195 | 
|  | #define PORT_DN6SMMRED 196 | 
|  | #define PORT_DLS 197 | 
|  | #define PORT_DLSMON 198 | 
|  | #define PORT_ATRMTP 201 | 
|  | #define PORT_ATNBP 202 | 
|  | #define PORT_AT3 203 | 
|  | #define PORT_ATECHO 204 | 
|  | #define PORT_AT5 205 | 
|  | #define PORT_ATZIS 206 | 
|  | #define PORT_AT7 207 | 
|  | #define PORT_AT8 208 | 
|  | #define PORT_SURMEAS 243 | 
|  | #define PORT_LINK 245 | 
|  | #define PORT_DSP3270 246 | 
|  | #define PORT_LDAP1 389 | 
|  | #define PORT_ISAKMP 500 | 
|  | #define PORT_REXEC 512 | 
|  | #define PORT_RLOGIN 513 | 
|  | #define PORT_RSH 514 | 
|  | #define PORT_LPD 515 | 
|  | #define PORT_RIP 520 | 
|  | #define PORT_TEMPO 526 | 
|  | #define PORT_COURIER 530 | 
|  | #define PORT_NETNEWS 532 | 
|  | #define PORT_UUCPD 540 | 
|  | #define PORT_KLOGIN 543 | 
|  | #define PORT_KSHELL 544 | 
|  | #define PORT_DSF 555 | 
|  | #define PORT_REMOTEEFS 556 | 
|  | #define PORT_CHSHELL 562 | 
|  | #define PORT_METER 570 | 
|  | #define PORT_PCSERVER 600 | 
|  | #define PORT_NQS 607 | 
|  | #define PORT_HMMP_INDICATION 612 | 
|  | #define PORT_HMMP_OPERATION 613 | 
|  | #define PORT_MDQS 666 | 
|  | #define PORT_LPD721 721 | 
|  | #define PORT_LPD722 722 | 
|  | #define PORT_LPD723 723 | 
|  | #define PORT_LPD724 724 | 
|  | #define PORT_LPD725 725 | 
|  | #define PORT_LPD726 726 | 
|  | #define PORT_LPD727 727 | 
|  | #define PORT_LPD728 728 | 
|  | #define PORT_LPD729 729 | 
|  | #define PORT_LPD730 730 | 
|  | #define PORT_LPD731 731 | 
|  | #define PORT_RFILE 750 | 
|  | #define PORT_PUMP 751 | 
|  | #define PORT_QRH 752 | 
|  | #define PORT_RRH 753 | 
|  | #define PORT_TELL 754 | 
|  | #define PORT_NLOGIN 758 | 
|  | #define PORT_CON 759 | 
|  | #define PORT_NS 760 | 
|  | #define PORT_RXE 761 | 
|  | #define PORT_QUOTAD 762 | 
|  | #define PORT_CYCLESERV 763 | 
|  | #define PORT_OMSERV 764 | 
|  | #define PORT_WEBSTER 765 | 
|  | #define PORT_PHONEBOOK 767 | 
|  | #define PORT_VID 769 | 
|  | #define PORT_RTIP 771 | 
|  | #define PORT_CYCLESERV2 772 | 
|  | #define PORT_SUBMIT 773 | 
|  | #define PORT_RPASSWD 774 | 
|  | #define PORT_ENTOMB 775 | 
|  | #define PORT_WPAGES 776 | 
|  | #define PORT_WPGS 780 | 
|  | #define PORT_MDBSDAEMON 800 | 
|  | #define PORT_DEVICE 801 | 
|  | #define PORT_MAITRD 997 | 
|  | #define PORT_BUSBOY 998 | 
|  | #define PORT_GARCON 999 | 
|  | #define PORT_NFS 2049 | 
|  | #define PORT_LDAP2 3268 | 
|  | #define PORT_PPTP 5678 | 
|  |  | 
|  | typedef struct _RequestReplyFields { | 
|  | WORD ID; | 
|  | WORD SeqNo; | 
|  | } ReqReply; | 
|  |  | 
|  | typedef struct _ParameterProblemFields { | 
|  | BYTE Pointer; | 
|  | BYTE junk[3]; | 
|  | } ParmProb; | 
|  |  | 
|  | typedef struct _TimestampFields { | 
|  | DWORD tsOrig; | 
|  | DWORD tsRecv; | 
|  | DWORD tsXmit; | 
|  | } TS; | 
|  |  | 
|  | typedef struct _RouterAnnounceHeaderFields { | 
|  | BYTE NumAddrs; | 
|  | BYTE AddrEntrySize; | 
|  | WORD Lifetime; | 
|  | } RouterAH; | 
|  |  | 
|  | typedef struct _RouterAnnounceEntry { | 
|  | DWORD Address; | 
|  | DWORD PreferenceLevel; | 
|  | } RouterAE; | 
|  |  | 
|  | typedef struct _ICMP { | 
|  | BYTE Type; | 
|  | BYTE Code; | 
|  | WORD Checksum; | 
|  | __C89_NAMELESS union { | 
|  | DWORD Unused; | 
|  | DWORD Address; | 
|  | ReqReply RR; | 
|  | ParmProb PP; | 
|  | RouterAH RAH; | 
|  | }; | 
|  | __C89_NAMELESS union { | 
|  | TS Time; | 
|  | IP IP; | 
|  | RouterAE RAE[0]; | 
|  | }; | 
|  | } ICMP; | 
|  |  | 
|  | typedef ICMP *LPICMP; | 
|  | typedef ICMP UNALIGNED *ULPICMP; | 
|  | #define ICMP_HEADER_LENGTH (8) | 
|  |  | 
|  | #define ICMP_IP_DATA_LENGTH (8) | 
|  |  | 
|  | #define ECHO_REPLY (0) | 
|  | #define DESTINATION_UNREACHABLE (3) | 
|  | #define SOURCE_QUENCH (4) | 
|  | #define REDIRECT (5) | 
|  | #define ECHO (8) | 
|  | #define ROUTER_ADVERTISEMENT (9) | 
|  | #define ROUTER_SOLICITATION (10) | 
|  | #define TIME_EXCEEDED (11) | 
|  | #define PARAMETER_PROBLEM (12) | 
|  | #define TIMESTAMP (13) | 
|  | #define TIMESTAMP_REPLY (14) | 
|  | #define INFORMATION_REQUEST (15) | 
|  | #define INFORMATION_REPLY (16) | 
|  | #define ADDRESS_MASK_REQUEST (17) | 
|  | #define ADDRESS_MASK_REPLY (18) | 
|  |  | 
|  | typedef struct __MIDL___MIDL_itf_netmon_0000_0018 { | 
|  | UCHAR ha_address[6]; | 
|  | } HOST_ADDRESS; | 
|  |  | 
|  | typedef struct _IPXADDRESS { | 
|  | ULONG ipx_NetNumber; | 
|  | HOST_ADDRESS ipx_HostAddr; | 
|  | } IPXADDRESS; | 
|  |  | 
|  | typedef IPXADDRESS UNALIGNED *PIPXADDRESS; | 
|  |  | 
|  | typedef struct _NET_ADDRESS { | 
|  | IPXADDRESS na_IPXAddr; | 
|  | USHORT na_socket; | 
|  | } NET_ADDRESS; | 
|  |  | 
|  | typedef NET_ADDRESS UNALIGNED *UPNET_ADDRESS; | 
|  |  | 
|  | typedef struct __MIDL___MIDL_itf_netmon_0000_0019 { | 
|  | USHORT ipx_checksum; | 
|  | USHORT ipx_length; | 
|  | UCHAR ipx_xport_control; | 
|  | UCHAR ipx_packet_type; | 
|  | NET_ADDRESS ipx_dest; | 
|  | NET_ADDRESS ipx_source; | 
|  | } IPX_HDR; | 
|  |  | 
|  | typedef IPX_HDR UNALIGNED *ULPIPX_HDR; | 
|  |  | 
|  | typedef struct _SPX_HDR { | 
|  | IPX_HDR spx_idp_hdr; | 
|  | UCHAR spx_conn_ctrl; | 
|  | UCHAR spx_data_type; | 
|  | USHORT spx_src_conn_id; | 
|  | USHORT spx_dest_conn_id; | 
|  | USHORT spx_sequence_num; | 
|  | USHORT spx_ack_num; | 
|  | USHORT spx_alloc_num; | 
|  | } SPX_HDR; | 
|  |  | 
|  | typedef SPX_HDR UNALIGNED *PSPX_HDR; | 
|  |  | 
|  | typedef struct _TCP { | 
|  | WORD SrcPort; | 
|  | WORD DstPort; | 
|  | DWORD SeqNum; | 
|  | DWORD AckNum; | 
|  | BYTE DataOff; | 
|  | BYTE Flags; | 
|  | WORD Window; | 
|  | WORD Chksum; | 
|  | WORD UrgPtr; | 
|  | } TCP; | 
|  |  | 
|  | typedef TCP *LPTCP; | 
|  |  | 
|  | typedef TCP UNALIGNED *ULPTCP; | 
|  |  | 
|  | #ifndef __CRT__NO_INLINE | 
|  | INLINE DWORD TCP_HdrLen(ULPTCP pTCP) { return (pTCP->DataOff & 0xf0) >> 2; } | 
|  | INLINE DWORD TCP_SrcPort(ULPTCP pTCP) { return XCHG(pTCP->SrcPort); } | 
|  | INLINE DWORD TCP_DstPort(ULPTCP pTCP) { return XCHG(pTCP->DstPort); } | 
|  | #endif | 
|  |  | 
|  | #define TCP_OPTION_ENDOFOPTIONS (0) | 
|  | #define TCP_OPTION_NOP (1) | 
|  | #define TCP_OPTION_MAXSEGSIZE (2) | 
|  | #define TCP_OPTION_WSCALE (3) | 
|  | #define TCP_OPTION_SACK_PERMITTED (4) | 
|  | #define TCP_OPTION_SACK (5) | 
|  | #define TCP_OPTION_TIMESTAMPS (8) | 
|  |  | 
|  | #define TCP_FLAG_URGENT (0x20) | 
|  | #define TCP_FLAG_ACK (0x10) | 
|  | #define TCP_FLAG_PUSH (0x8) | 
|  | #define TCP_FLAG_RESET (0x4) | 
|  | #define TCP_FLAG_SYN (0x2) | 
|  | #define TCP_FLAG_FIN (0x1) | 
|  | #define TCP_RESERVED_MASK (0xfc0) | 
|  |  | 
|  | #pragma pack(pop) | 
|  |  | 
|  | #define DEFAULT_DELAYED_BUFFER_SIZE (1) | 
|  | #define USE_DEFAULT_DRIVE_LETTER (0) | 
|  | #define RTC_FRAME_SIZE_FULL (0) | 
|  |  | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0000_v0_0_c_ifspec; | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0000_v0_0_s_ifspec; | 
|  |  | 
|  | #ifndef __IDelaydC_INTERFACE_DEFINED__ | 
|  | #define __IDelaydC_INTERFACE_DEFINED__ | 
|  | EXTERN_C const IID IID_IDelaydC; | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | struct IDelaydC : public IUnknown { | 
|  | public: | 
|  | virtual HRESULT WINAPI Connect(HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob) = 0; | 
|  | virtual HRESULT WINAPI Disconnect(void) = 0; | 
|  | virtual HRESULT WINAPI QueryStatus(NETWORKSTATUS *pNetworkStatus) = 0; | 
|  | virtual HRESULT WINAPI Configure(HBLOB hConfigurationBlob,HBLOB hErrorBlob) = 0; | 
|  | virtual HRESULT WINAPI Start(char *pFileName) = 0; | 
|  | virtual HRESULT WINAPI Pause(void) = 0; | 
|  | virtual HRESULT WINAPI Resume(void) = 0; | 
|  | virtual HRESULT WINAPI Stop(LPSTATISTICS lpStats) = 0; | 
|  | virtual HRESULT WINAPI GetControlState(WINBOOL *IsRunnning,WINBOOL *IsPaused) = 0; | 
|  | virtual HRESULT WINAPI GetTotalStatistics(LPSTATISTICS lpStats,WINBOOL fClearAfterReading) = 0; | 
|  | virtual HRESULT WINAPI GetConversationStatistics(DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading) = 0; | 
|  | virtual HRESULT WINAPI InsertSpecialFrame(DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength) = 0; | 
|  | virtual HRESULT WINAPI QueryStations(QUERYTABLE *lpQueryTable) = 0; | 
|  | }; | 
|  | #else | 
|  | typedef struct IDelaydCVtbl { | 
|  | BEGIN_INTERFACE | 
|  | HRESULT (WINAPI *QueryInterface)(IDelaydC *This,REFIID riid,void **ppvObject); | 
|  | ULONG (WINAPI *AddRef)(IDelaydC *This); | 
|  | ULONG (WINAPI *Release)(IDelaydC *This); | 
|  | HRESULT (WINAPI *Connect)(IDelaydC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob); | 
|  | HRESULT (WINAPI *Disconnect)(IDelaydC *This); | 
|  | HRESULT (WINAPI *QueryStatus)(IDelaydC *This,NETWORKSTATUS *pNetworkStatus); | 
|  | HRESULT (WINAPI *Configure)(IDelaydC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob); | 
|  | HRESULT (WINAPI *Start)(IDelaydC *This,char *pFileName); | 
|  | HRESULT (WINAPI *Pause)(IDelaydC *This); | 
|  | HRESULT (WINAPI *Resume)(IDelaydC *This); | 
|  | HRESULT (WINAPI *Stop)(IDelaydC *This,LPSTATISTICS lpStats); | 
|  | HRESULT (WINAPI *GetControlState)(IDelaydC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused); | 
|  | HRESULT (WINAPI *GetTotalStatistics)(IDelaydC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading); | 
|  | HRESULT (WINAPI *GetConversationStatistics)(IDelaydC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading); | 
|  | HRESULT (WINAPI *InsertSpecialFrame)(IDelaydC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength); | 
|  | HRESULT (WINAPI *QueryStations)(IDelaydC *This,QUERYTABLE *lpQueryTable); | 
|  | END_INTERFACE | 
|  | } IDelaydCVtbl; | 
|  | struct IDelaydC { | 
|  | CONST_VTBL struct IDelaydCVtbl *lpVtbl; | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IDelaydC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IDelaydC_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IDelaydC_Release(This) (This)->lpVtbl->Release(This) | 
|  | #define IDelaydC_Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob) (This)->lpVtbl->Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob) | 
|  | #define IDelaydC_Disconnect(This) (This)->lpVtbl->Disconnect(This) | 
|  | #define IDelaydC_QueryStatus(This,pNetworkStatus) (This)->lpVtbl->QueryStatus(This,pNetworkStatus) | 
|  | #define IDelaydC_Configure(This,hConfigurationBlob,hErrorBlob) (This)->lpVtbl->Configure(This,hConfigurationBlob,hErrorBlob) | 
|  | #define IDelaydC_Start(This,pFileName) (This)->lpVtbl->Start(This,pFileName) | 
|  | #define IDelaydC_Pause(This) (This)->lpVtbl->Pause(This) | 
|  | #define IDelaydC_Resume(This) (This)->lpVtbl->Resume(This) | 
|  | #define IDelaydC_Stop(This,lpStats) (This)->lpVtbl->Stop(This,lpStats) | 
|  | #define IDelaydC_GetControlState(This,IsRunnning,IsPaused) (This)->lpVtbl->GetControlState(This,IsRunnning,IsPaused) | 
|  | #define IDelaydC_GetTotalStatistics(This,lpStats,fClearAfterReading) (This)->lpVtbl->GetTotalStatistics(This,lpStats,fClearAfterReading) | 
|  | #define IDelaydC_GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) (This)->lpVtbl->GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) | 
|  | #define IDelaydC_InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) (This)->lpVtbl->InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) | 
|  | #define IDelaydC_QueryStations(This,lpQueryTable) (This)->lpVtbl->QueryStations(This,lpQueryTable) | 
|  | #endif | 
|  | #endif | 
|  | HRESULT WINAPI IDelaydC_Connect_Proxy(IDelaydC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob); | 
|  | void __RPC_STUB IDelaydC_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_Disconnect_Proxy(IDelaydC *This); | 
|  | void __RPC_STUB IDelaydC_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_QueryStatus_Proxy(IDelaydC *This,NETWORKSTATUS *pNetworkStatus); | 
|  | void __RPC_STUB IDelaydC_QueryStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_Configure_Proxy(IDelaydC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob); | 
|  | void __RPC_STUB IDelaydC_Configure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_Start_Proxy(IDelaydC *This,char *pFileName); | 
|  | void __RPC_STUB IDelaydC_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_Pause_Proxy(IDelaydC *This); | 
|  | void __RPC_STUB IDelaydC_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_Resume_Proxy(IDelaydC *This); | 
|  | void __RPC_STUB IDelaydC_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_Stop_Proxy(IDelaydC *This,LPSTATISTICS lpStats); | 
|  | void __RPC_STUB IDelaydC_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_GetControlState_Proxy(IDelaydC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused); | 
|  | void __RPC_STUB IDelaydC_GetControlState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_GetTotalStatistics_Proxy(IDelaydC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading); | 
|  | void __RPC_STUB IDelaydC_GetTotalStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_GetConversationStatistics_Proxy(IDelaydC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading); | 
|  | void __RPC_STUB IDelaydC_GetConversationStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_InsertSpecialFrame_Proxy(IDelaydC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength); | 
|  | void __RPC_STUB IDelaydC_InsertSpecialFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IDelaydC_QueryStations_Proxy(IDelaydC *This,QUERYTABLE *lpQueryTable); | 
|  | void __RPC_STUB IDelaydC_QueryStations_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | #endif | 
|  |  | 
|  | #define DEFAULT_RTC_BUFFER_SIZE (0x100000) | 
|  |  | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0010_v0_0_c_ifspec; | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0010_v0_0_s_ifspec; | 
|  |  | 
|  | #ifndef __IRTC_INTERFACE_DEFINED__ | 
|  | #define __IRTC_INTERFACE_DEFINED__ | 
|  | EXTERN_C const IID IID_IRTC; | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | struct IRTC : public IUnknown { | 
|  | public: | 
|  | virtual HRESULT WINAPI Connect(HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID FramesCallbackProc,LPVOID UserContext,HBLOB hErrorBlob) = 0; | 
|  | virtual HRESULT WINAPI Disconnect(void) = 0; | 
|  | virtual HRESULT WINAPI QueryStatus(NETWORKSTATUS *pNetworkStatus) = 0; | 
|  | virtual HRESULT WINAPI Configure(HBLOB hConfigurationBlob,HBLOB hErrorBlob) = 0; | 
|  | virtual HRESULT WINAPI Start(void) = 0; | 
|  | virtual HRESULT WINAPI Pause(void) = 0; | 
|  | virtual HRESULT WINAPI Resume(void) = 0; | 
|  | virtual HRESULT WINAPI Stop(void) = 0; | 
|  | virtual HRESULT WINAPI GetControlState(WINBOOL *IsRunnning,WINBOOL *IsPaused) = 0; | 
|  | virtual HRESULT WINAPI GetTotalStatistics(LPSTATISTICS lpStats,WINBOOL fClearAfterReading) = 0; | 
|  | virtual HRESULT WINAPI GetConversationStatistics(DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading) = 0; | 
|  | virtual HRESULT WINAPI InsertSpecialFrame(DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength) = 0; | 
|  | virtual HRESULT WINAPI QueryStations(QUERYTABLE *lpQueryTable) = 0; | 
|  | }; | 
|  | #else | 
|  | typedef struct IRTCVtbl { | 
|  | BEGIN_INTERFACE | 
|  | HRESULT (WINAPI *QueryInterface)(IRTC *This,REFIID riid,void **ppvObject); | 
|  | ULONG (WINAPI *AddRef)(IRTC *This); | 
|  | ULONG (WINAPI *Release)(IRTC *This); | 
|  | HRESULT (WINAPI *Connect)(IRTC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID FramesCallbackProc,LPVOID UserContext,HBLOB hErrorBlob); | 
|  | HRESULT (WINAPI *Disconnect)(IRTC *This); | 
|  | HRESULT (WINAPI *QueryStatus)(IRTC *This,NETWORKSTATUS *pNetworkStatus); | 
|  | HRESULT (WINAPI *Configure)(IRTC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob); | 
|  | HRESULT (WINAPI *Start)(IRTC *This); | 
|  | HRESULT (WINAPI *Pause)(IRTC *This); | 
|  | HRESULT (WINAPI *Resume)(IRTC *This); | 
|  | HRESULT (WINAPI *Stop)(IRTC *This); | 
|  | HRESULT (WINAPI *GetControlState)(IRTC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused); | 
|  | HRESULT (WINAPI *GetTotalStatistics)(IRTC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading); | 
|  | HRESULT (WINAPI *GetConversationStatistics)(IRTC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading); | 
|  | HRESULT (WINAPI *InsertSpecialFrame)(IRTC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength); | 
|  | HRESULT (WINAPI *QueryStations)(IRTC *This,QUERYTABLE *lpQueryTable); | 
|  | END_INTERFACE | 
|  | } IRTCVtbl; | 
|  | struct IRTC { | 
|  | CONST_VTBL struct IRTCVtbl *lpVtbl; | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IRTC_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IRTC_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IRTC_Release(This) (This)->lpVtbl->Release(This) | 
|  | #define IRTC_Connect(This,hInputBlob,StatusCallbackProc,FramesCallbackProc,UserContext,hErrorBlob) (This)->lpVtbl->Connect(This,hInputBlob,StatusCallbackProc,FramesCallbackProc,UserContext,hErrorBlob) | 
|  | #define IRTC_Disconnect(This) (This)->lpVtbl->Disconnect(This) | 
|  | #define IRTC_QueryStatus(This,pNetworkStatus) (This)->lpVtbl->QueryStatus(This,pNetworkStatus) | 
|  | #define IRTC_Configure(This,hConfigurationBlob,hErrorBlob) (This)->lpVtbl->Configure(This,hConfigurationBlob,hErrorBlob) | 
|  | #define IRTC_Start(This) (This)->lpVtbl->Start(This) | 
|  | #define IRTC_Pause(This) (This)->lpVtbl->Pause(This) | 
|  | #define IRTC_Resume(This) (This)->lpVtbl->Resume(This) | 
|  | #define IRTC_Stop(This) (This)->lpVtbl->Stop(This) | 
|  | #define IRTC_GetControlState(This,IsRunnning,IsPaused) (This)->lpVtbl->GetControlState(This,IsRunnning,IsPaused) | 
|  | #define IRTC_GetTotalStatistics(This,lpStats,fClearAfterReading) (This)->lpVtbl->GetTotalStatistics(This,lpStats,fClearAfterReading) | 
|  | #define IRTC_GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) (This)->lpVtbl->GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) | 
|  | #define IRTC_InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) (This)->lpVtbl->InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) | 
|  | #define IRTC_QueryStations(This,lpQueryTable) (This)->lpVtbl->QueryStations(This,lpQueryTable) | 
|  | #endif | 
|  | #endif | 
|  | HRESULT WINAPI IRTC_Connect_Proxy(IRTC *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID FramesCallbackProc,LPVOID UserContext,HBLOB hErrorBlob); | 
|  | void __RPC_STUB IRTC_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_Disconnect_Proxy(IRTC *This); | 
|  | void __RPC_STUB IRTC_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_QueryStatus_Proxy(IRTC *This,NETWORKSTATUS *pNetworkStatus); | 
|  | void __RPC_STUB IRTC_QueryStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_Configure_Proxy(IRTC *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob); | 
|  | void __RPC_STUB IRTC_Configure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_Start_Proxy(IRTC *This); | 
|  | void __RPC_STUB IRTC_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_Pause_Proxy(IRTC *This); | 
|  | void __RPC_STUB IRTC_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_Resume_Proxy(IRTC *This); | 
|  | void __RPC_STUB IRTC_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_Stop_Proxy(IRTC *This); | 
|  | void __RPC_STUB IRTC_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_GetControlState_Proxy(IRTC *This,WINBOOL *IsRunnning,WINBOOL *IsPaused); | 
|  | void __RPC_STUB IRTC_GetControlState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_GetTotalStatistics_Proxy(IRTC *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading); | 
|  | void __RPC_STUB IRTC_GetTotalStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_GetConversationStatistics_Proxy(IRTC *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading); | 
|  | void __RPC_STUB IRTC_GetConversationStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_InsertSpecialFrame_Proxy(IRTC *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength); | 
|  | void __RPC_STUB IRTC_InsertSpecialFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IRTC_QueryStations_Proxy(IRTC *This,QUERYTABLE *lpQueryTable); | 
|  | void __RPC_STUB IRTC_QueryStations_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | #endif | 
|  |  | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0012_v0_0_c_ifspec; | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0012_v0_0_s_ifspec; | 
|  |  | 
|  | #ifndef __IStats_INTERFACE_DEFINED__ | 
|  | #define __IStats_INTERFACE_DEFINED__ | 
|  | EXTERN_C const IID IID_IStats; | 
|  | #if defined(__cplusplus) && !defined(CINTERFACE) | 
|  | struct IStats : public IUnknown { | 
|  | public: | 
|  | virtual HRESULT WINAPI Connect(HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob) = 0; | 
|  | virtual HRESULT WINAPI Disconnect(void) = 0; | 
|  | virtual HRESULT WINAPI QueryStatus(NETWORKSTATUS *pNetworkStatus) = 0; | 
|  | virtual HRESULT WINAPI Configure(HBLOB hConfigurationBlob,HBLOB hErrorBlob) = 0; | 
|  | virtual HRESULT WINAPI Start(void) = 0; | 
|  | virtual HRESULT WINAPI Pause(void) = 0; | 
|  | virtual HRESULT WINAPI Resume(void) = 0; | 
|  | virtual HRESULT WINAPI Stop(void) = 0; | 
|  | virtual HRESULT WINAPI GetControlState(WINBOOL *IsRunnning,WINBOOL *IsPaused) = 0; | 
|  | virtual HRESULT WINAPI GetTotalStatistics(LPSTATISTICS lpStats,WINBOOL fClearAfterReading) = 0; | 
|  | virtual HRESULT WINAPI GetConversationStatistics(DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading) = 0; | 
|  | virtual HRESULT WINAPI InsertSpecialFrame(DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength) = 0; | 
|  | virtual HRESULT WINAPI QueryStations(QUERYTABLE *lpQueryTable) = 0; | 
|  | }; | 
|  | #else | 
|  | typedef struct IStatsVtbl { | 
|  | BEGIN_INTERFACE | 
|  | HRESULT (WINAPI *QueryInterface)(IStats *This,REFIID riid,void **ppvObject); | 
|  | ULONG (WINAPI *AddRef)(IStats *This); | 
|  | ULONG (WINAPI *Release)(IStats *This); | 
|  | HRESULT (WINAPI *Connect)(IStats *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob); | 
|  | HRESULT (WINAPI *Disconnect)(IStats *This); | 
|  | HRESULT (WINAPI *QueryStatus)(IStats *This,NETWORKSTATUS *pNetworkStatus); | 
|  | HRESULT (WINAPI *Configure)(IStats *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob); | 
|  | HRESULT (WINAPI *Start)(IStats *This); | 
|  | HRESULT (WINAPI *Pause)(IStats *This); | 
|  | HRESULT (WINAPI *Resume)(IStats *This); | 
|  | HRESULT (WINAPI *Stop)(IStats *This); | 
|  | HRESULT (WINAPI *GetControlState)(IStats *This,WINBOOL *IsRunnning,WINBOOL *IsPaused); | 
|  | HRESULT (WINAPI *GetTotalStatistics)(IStats *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading); | 
|  | HRESULT (WINAPI *GetConversationStatistics)(IStats *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading); | 
|  | HRESULT (WINAPI *InsertSpecialFrame)(IStats *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength); | 
|  | HRESULT (WINAPI *QueryStations)(IStats *This,QUERYTABLE *lpQueryTable); | 
|  | END_INTERFACE | 
|  | } IStatsVtbl; | 
|  | struct IStats { | 
|  | CONST_VTBL struct IStatsVtbl *lpVtbl; | 
|  | }; | 
|  | #ifdef COBJMACROS | 
|  | #define IStats_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject) | 
|  | #define IStats_AddRef(This) (This)->lpVtbl->AddRef(This) | 
|  | #define IStats_Release(This) (This)->lpVtbl->Release(This) | 
|  | #define IStats_Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob) (This)->lpVtbl->Connect(This,hInputBlob,StatusCallbackProc,UserContext,hErrorBlob) | 
|  | #define IStats_Disconnect(This) (This)->lpVtbl->Disconnect(This) | 
|  | #define IStats_QueryStatus(This,pNetworkStatus) (This)->lpVtbl->QueryStatus(This,pNetworkStatus) | 
|  | #define IStats_Configure(This,hConfigurationBlob,hErrorBlob) (This)->lpVtbl->Configure(This,hConfigurationBlob,hErrorBlob) | 
|  | #define IStats_Start(This) (This)->lpVtbl->Start(This) | 
|  | #define IStats_Pause(This) (This)->lpVtbl->Pause(This) | 
|  | #define IStats_Resume(This) (This)->lpVtbl->Resume(This) | 
|  | #define IStats_Stop(This) (This)->lpVtbl->Stop(This) | 
|  | #define IStats_GetControlState(This,IsRunnning,IsPaused) (This)->lpVtbl->GetControlState(This,IsRunnning,IsPaused) | 
|  | #define IStats_GetTotalStatistics(This,lpStats,fClearAfterReading) (This)->lpVtbl->GetTotalStatistics(This,lpStats,fClearAfterReading) | 
|  | #define IStats_GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) (This)->lpVtbl->GetConversationStatistics(This,nSessions,lpSessionStats,nStations,lpStationStats,fClearAfterReading) | 
|  | #define IStats_InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) (This)->lpVtbl->InsertSpecialFrame(This,FrameType,Flags,pUserData,UserDataLength) | 
|  | #define IStats_QueryStations(This,lpQueryTable) (This)->lpVtbl->QueryStations(This,lpQueryTable) | 
|  | #endif | 
|  | #endif | 
|  | HRESULT WINAPI IStats_Connect_Proxy(IStats *This,HBLOB hInputBlob,LPVOID StatusCallbackProc,LPVOID UserContext,HBLOB hErrorBlob); | 
|  | void __RPC_STUB IStats_Connect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_Disconnect_Proxy(IStats *This); | 
|  | void __RPC_STUB IStats_Disconnect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_QueryStatus_Proxy(IStats *This,NETWORKSTATUS *pNetworkStatus); | 
|  | void __RPC_STUB IStats_QueryStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_Configure_Proxy(IStats *This,HBLOB hConfigurationBlob,HBLOB hErrorBlob); | 
|  | void __RPC_STUB IStats_Configure_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_Start_Proxy(IStats *This); | 
|  | void __RPC_STUB IStats_Start_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_Pause_Proxy(IStats *This); | 
|  | void __RPC_STUB IStats_Pause_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_Resume_Proxy(IStats *This); | 
|  | void __RPC_STUB IStats_Resume_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_Stop_Proxy(IStats *This); | 
|  | void __RPC_STUB IStats_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_GetControlState_Proxy(IStats *This,WINBOOL *IsRunnning,WINBOOL *IsPaused); | 
|  | void __RPC_STUB IStats_GetControlState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_GetTotalStatistics_Proxy(IStats *This,LPSTATISTICS lpStats,WINBOOL fClearAfterReading); | 
|  | void __RPC_STUB IStats_GetTotalStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_GetConversationStatistics_Proxy(IStats *This,DWORD *nSessions,LPSESSIONSTATS lpSessionStats,DWORD *nStations,LPSTATIONSTATS lpStationStats,WINBOOL fClearAfterReading); | 
|  | void __RPC_STUB IStats_GetConversationStatistics_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_InsertSpecialFrame_Proxy(IStats *This,DWORD FrameType,DWORD Flags,BYTE *pUserData,DWORD UserDataLength); | 
|  | void __RPC_STUB IStats_InsertSpecialFrame_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | HRESULT WINAPI IStats_QueryStations_Proxy(IStats *This,QUERYTABLE *lpQueryTable); | 
|  | void __RPC_STUB IStats_QueryStations_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase); | 
|  | #endif | 
|  |  | 
|  | #pragma pack() | 
|  |  | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0014_v0_0_c_ifspec; | 
|  | extern RPC_IF_HANDLE __MIDL_itf_netmon_0014_v0_0_s_ifspec; | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  | #endif |