Files
mirror-processhacker/2.x/trunk/plugins/ExtendedTools/etwmon.h
T
wj32 728b0904f3 added ETW-based statistics collection to ExtendedTools plugin
git-svn-id: svn://svn.code.sf.net/p/processhacker/code@3869 21ef857c-d57f-4fe0-8362-d861dc6d29cd
2010-12-03 10:44:10 +00:00

76 lines
1.3 KiB
C

#ifndef ETWMON_H
#define ETWMON_H
#include <evntcons.h>
typedef ULONG wmi_uint32;
typedef struct
{
wmi_uint32 LowPart;
wmi_uint32 HighPart;
} wmi_uint64;
typedef struct
{
wmi_uint32 DiskNumber;
wmi_uint32 IrpFlags;
wmi_uint32 TransferSize;
wmi_uint32 ResponseTime;
wmi_uint64 ByteOffset;
// Other members not included.
} DiskIo_TypeGroup1;
typedef struct
{
wmi_uint32 PID;
wmi_uint32 size;
} TcpIpOrUdpIp_Header;
// etwmon
VOID EtEtwMonitorInitialization();
VOID EtEtwMonitorUninitialization();
VOID EtStartEtwSession();
VOID EtStopEtwSession();
VOID EtFlushEtwSession();
// etwstat
typedef enum _ET_ETW_EVENT_TYPE
{
EtEtwDiskReadType = 1,
EtEtwDiskWriteType,
EtEtwNetworkReceiveType,
EtEtwNetworkSendType
} ET_ETW_EVENT_TYPE;
typedef struct _ET_ETW_DISK_EVENT
{
ET_ETW_EVENT_TYPE Type;
CLIENT_ID ClientId;
ULONG TransferSize;
} ET_ETW_DISK_EVENT, *PET_ETW_DISK_EVENT;
typedef struct _ET_ETW_NETWORK_EVENT
{
ET_ETW_EVENT_TYPE Type;
CLIENT_ID ClientId;
ULONG ProtocolType;
ULONG TransferSize;
} ET_ETW_NETWORK_EVENT, *PET_ETW_NETWORK_EVENT;
VOID EtProcessDiskEvent(
__in PET_ETW_DISK_EVENT Event
);
VOID EtProcessNetworkEvent(
__in PET_ETW_NETWORK_EVENT Event
);
#endif