📄 naltypes.h
字号:
#define NETWORKINFO_FLAGS_PMODE_NOT_SUPPORTED 0x00000001
#define NETWORKINFO_FLAGS_LOOPBACK_NOT_SUPPORTED 0x00000002
#define NETWORKINFO_FLAGS_REMOTE_NAL 0x00000004
#define NETWORKINFO_FLAGS_REMOTE_NAL_CONNECTED 0x00000008
#define NETWORKINFO_FLAGS_REMOTE_CARD 0x00000010
//=============================================================================
// Pattern structure.
//=============================================================================
#define MAX_PATTERN_LENGTH 16
typedef struct _PATTERNMATCH
{
DWORD Flags;
WORD Offset;
WORD Length;
BYTE PatternToMatch[MAX_PATTERN_LENGTH]; //... Pattern to match.
} PATTERNMATCH;
#define PATTERN_MATCH_FLAGS_NOT 0x00000001 //... Negate the results.
#define PATTERN_MATCH_FLAGS_DATA_RELATIVE 0x00000002 //... pattern is relative to data, not frame.
typedef PATTERNMATCH *LPPATTERNMATCH;
#define PATTERNMATCH_SIZE sizeof(PATTERNMATCH)
//=============================================================================
// Expression structure.
//=============================================================================
#define MAX_PATTERNS 4
typedef struct _ANDEXP
{
DWORD nPatternMatches;
PATTERNMATCH PatternMatch[MAX_PATTERNS];
} ANDEXP;
typedef ANDEXP *LPANDEXP;
#define ANDEXP_SIZE sizeof(ANDEXP)
typedef struct _EXPRESSION
{
DWORD nAndExps;
ANDEXP AndExp[MAX_PATTERNS];
} EXPRESSION;
typedef EXPRESSION *LPEXPRESSION;
#define EXPRESSION_SIZE sizeof(EXPRESSION)
//=============================================================================
// Trigger.
//=============================================================================
typedef struct _TRIGGER
{
DWORD TriggerFlags; //... Trigger flags.
PATTERNMATCH TriggerPatternMatch; //... Trigger pattern match.
BYTE TriggerOpcode; //... Trigger opcode.
BYTE TriggerAction; //... Action to take when trigger occurs.
WORD TriggerState; //... State change request.
WORD TriggerBufferSize; //... Percentage of buffer to trigger on.
LPSTR TriggerCommand; //... Command string to pass to WinExec.
} TRIGGER;
typedef TRIGGER *LPTRIGGER;
#define TRIGGER_SIZE sizeof(TRIGGER)
#define TRIGGER_FLAGS_DATA_RELATIVE 0x00000001
//=============================================================================
// Capture filter.
//=============================================================================
typedef struct _CAPTUREFILTER
{
DWORD FilterFlags; //... filter flags,
LPBYTE SapTable; //... sap table.
LPWORD EtypeTable; //... etype table.
WORD nSaps; //... sap table length.
WORD nEtypes; //... Etype table length.
LPADDRESSTABLE AddressTable; //... Address table.
EXPRESSION FilterExpression; //... Filter expression.
TRIGGER Trigger; //... Trigger structure.
DWORD nFrameBytesToCopy; //... Number of byte of each frame to copy.
DWORD Reserved;
} CAPTUREFILTER;
typedef CAPTUREFILTER *LPCAPTUREFILTER;
#define CAPTUREFILTER_SIZE sizeof(CAPTUREFILTER)
//=============================================================================
// Capture filter flags. By default all frames are rejected and
// NalSetCaptureFilter enables them based on the CAPTUREFILTER flags
// defined below.
//=============================================================================
#define CAPTUREFILTER_FLAGS_INCLUDE_ALL_SAPS 0x0001 //... include saps.
#define CAPTUREFILTER_FLAGS_INCLUDE_ALL_ETYPES 0x0002 //... include etypes.
#define CAPTUREFILTER_FLAGS_TRIGGER 0x0004 //... process trigger.
#define CAPTUREFILTER_FLAGS_LOCAL_ONLY 0x0008 //... non-promiscuous.
#define CAPTUREFILTER_FLAGS_DISCARD_COMMENTS 0x0010 //... throw away our internal comment frames
//.. The following causes both saps and etypes to be included.
#define CAPTUREFILTER_FLAGS_INCLUDE_ALL 0x0003 //... 0x0001 | 0x0002
#define BUFFER_FULL_25_PERCENT 0
#define BUFFER_FULL_50_PERCENT 1
#define BUFFER_FULL_75_PERCENT 2
#define BUFFER_FULL_100_PERCENT 3
//=============================================================================
// Station statistics.
//=============================================================================
typedef struct _STATIONSTATS *LPSTATIONSTATS;
typedef struct _SESSION *LPSESSION;
typedef struct _SESSION
{
LPSESSION NextSession; //... opaque, used by nal.
LPSTATIONSTATS StationOwner;
LPSTATIONSTATS StationPartner;
DWORD Flags;
DWORD TotalPacketsSent;
} SESSION;
#define SESSION_SIZE sizeof(SESSION)
#define SESSION_FLAGS_INITIALIZED 0x0001 //... Structure has been initialized.
#define SESSION_FLAGS_EVENTPOSTED 0x0002 //... Nal has posted an event for this entry.
typedef struct _STATIONSTATS *LPSTATIONSTATS;
typedef struct _STATIONSTATS
{
LPSTATIONSTATS NextStationStats; //... opaque, used by nal.
LPSESSION SessionPartnerList; //... opaque, used by nal.
DWORD Flags; //... opaque, used by nal.
BYTE StationAddress[6];
WORD Pad; //... DWORD alignment.
DWORD TotalPacketsReceived;
DWORD TotalDirectedPacketsSent;
DWORD TotalBroadcastPacketsSent;
DWORD TotalMulticastPacketsSent;
DWORD TotalBytesReceived;
DWORD TotalBytesSent;
} STATIONSTATS;
#define STATIONSTATS_SIZE sizeof(STATIONSTATS)
#define STATIONSTATS_FLAGS_INITIALIZED 0x0001 //... Structure has been initialized.
#define STATIONSTATS_FLAGS_EVENTPOSTED 0x0002 //... Nal has posted an event for this entry.
//=============================================================================
// Bone packet definition.
//=============================================================================
#define STATIONQUERY_FLAGS_LOADED 0x0001 //... Driver is loaded but the kernel is not.
#define STATIONQUERY_FLAGS_RUNNING 0x0002 //... Driver is loaded but not capturing.
#define STATIONQUERY_FLAGS_CAPTURING 0x0004 //... Driver is actively capturing.
#define STATIONQUERY_FLAGS_TRANSMITTING 0x0008 //... Driver is actively transmitting.
typedef struct _STATIONQUERY
{
DWORD Flags; //... Current state of bloodhound.
BYTE BCDVerMinor; //... Binary coded decimal (minor).
BYTE BCDVerMajor; //... Binary coded decimal (major).
DWORD LicenseNumber; //... Software license number.
BYTE MachineName[MACHINE_NAME_LENGTH]; //... Machine name, if any.
BYTE UserName[USER_NAME_LENGTH]; //... Username name, if any.
BYTE Reserved[32]; //... Reserved.
BYTE AdapterAddress[6]; //... NIC address.
} STATIONQUERY;
typedef STATIONQUERY *LPSTATIONQUERY;
#define STATIONQUERY_SIZE sizeof(STATIONQUERY)
//=============================================================================
// QUERYTABLE structure.
//=============================================================================
typedef struct _QUERYTABLE
{
DWORD nStationQueries;
STATIONQUERY StationQuery[0];
} QUERYTABLE;
typedef QUERYTABLE *LPQUERYTABLE;
#define QUERYTABLE_SIZE sizeof(QUERYTABLE)
//=============================================================================
// BONEPACKET structure.
//=============================================================================
typedef struct _BONEPACKET
{
DWORD Signature; //... 'RTSS'
BYTE Command; //... packet command field.
BYTE Flags; //... flags.
DWORD Reserved; //... reserved.
WORD Length; //... length of data, if any.
} BONEPACKET;
typedef BONEPACKET *LPBONEPACKET;
#define BONEPACKET_SIZE sizeof(BONEPACKET)
//=============================================================================
// BONE alert packet.
//=============================================================================
typedef struct _ALERT
{
DWORD AlertCode; //... Alert code.
BYTE MachineName[MACHINE_NAME_LENGTH]; //... Machine name, if any.
BYTE UserName[USER_NAME_LENGTH]; //... Username name, if any.
union
{
BYTE Pad[32]; //... Alert code-specific data.
DWORD nFramesToSend; //... Transmit alert data.
};
} ALERT;
typedef ALERT *LPALERT;
#define ALERT_SIZE sizeof(ALERT)
//... Alert codes.
#define ALERT_CODE_BEGIN_TRANSMIT 0
//=============================================================================
// BONEPACKET signature.
//=============================================================================
#define MAKE_WORD(l, h) (((WORD) (l)) | (((WORD) (h)) << 8))
#define MAKE_LONG(l, h) (((DWORD) (l)) | (((DWORD) (h)) << 16L))
#define MAKE_SIG(a, b, c, d) MAKE_LONG(MAKE_WORD(a, b), MAKE_WORD(c, d))
#define BONE_PACKET_SIGNATURE MAKE_SIG('R', 'T', 'S', 'S')
//=============================================================================
// BONEPACKET commands.
//=============================================================================
#define BONE_COMMAND_STATION_QUERY_REQUEST 0
#define BONE_COMMAND_STATION_QUERY_RESPONSE 1
#define BONE_COMMAND_ALERT 2
//=============================================================================
// STATISTICS parameter structure return from OpenNetwork().
//=============================================================================
typedef struct _STATISTICSPARAM
{
DWORD StatisticsSize; //... Number of bytes.
LPSTATISTICS Statistics;
DWORD StatisticsTableEntries; //... Number of entries.
LPSTATIONSTATS StatisticsTable;
DWORD SessionTableEntries; //... Number of entries.
LPSESSION SessionTable;
} STATISTICSPARAM;
typedef STATISTICSPARAM *LPSTATISTICSPARAM;
#define STATISTICSPARAM_SIZE sizeof(STATISTICSPARAM)
//=============================================================================
// RECONNECTINFO structure.
//=============================================================================
typedef struct _RECONNECTINFO_HEADER
{
DWORD Signature; //... Application-defined signature.
WORD PrivateDataLength; //... Private data length (max = 64K - header size).
BYTE Reserved[26]; //... Reserved for future use.
} RECONNECTINFO_HEADER;
typedef RECONNECTINFO_HEADER *LPRECONNECTINFO_HEADER;
#define RECONNECTINFO_HEADER_SIZE sizeof(RECONNECTINFO_HEADER) //... 32 byte fixed header.
typedef struct _RECONNECTINFO
{
RECONNECTINFO_HEADER ReconnectInfoHeader;
BYTE PrivateData[0];
} RECONNECTINFO;
typedef RECONNECTINFO *LPRECONNECTINFO;
#define RECONNECTINFO_SIZE sizeof(RECONNECTINFO)
//=============================================================================
// BUGBUG: TEMP SetupNetworkID() data struct
//=============================================================================
typedef struct _SETUPNETWORKPARMS
{
char Nodename[32]; //... remote node to connect to
char Comment[255]; //... comment regarding what we are using remote network for
int NetID; //... which network id to use
DWORD Frequency; //... frequency of Agent status updates
DWORD fSlowLink:1; //... flag to signify slow link
} SETUPNETWORKPARMS;
typedef SETUPNETWORKPARMS *LPSETUPNETWORKPARMS;
#define SETUPNETWORKPARMS_SIZE sizeof(SETUPNETWORKPARMS)
//=============================================================================
// Constants for SpecialFrame comment insertions
//=============================================================================
#define SPECIAL_FRAME_FLAG_USE_AS_STATS_ENDPOINT 0x00000001
#define SPECIAL_FRAME_TYPE_COMMENT 101
#define SPECIAL_FRAME_TYPE_BOOKMARK 102
#define SPECIAL_FRAME_TYPE_STATS 103
#define SPECIAL_FRAME_TYPE_ODBC 104
#define SPECIAL_FRAME_TYPE_MESSAGE 105
#pragma pack()
#endif
#pragma option pop /*P_O_Pop*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -