Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

118 lines
2.9 KiB

/*++
Copyright (c) 2001-2002 Microsoft Corporation
Module Name:
uletw.h (UL IIS+ ETW logging)
Abstract:
This module implements the Event Tracer for Windows (ETW)
tracing capability for UL.
Author:
Melur Raghuraman (mraghu) 26-Feb-2001
Revision History:
--*/
#ifndef _ULETW_H_
#define _ULETW_H_
DEFINE_GUID ( /* 3c419e3d-1d18-415b-a91a-9b558938de4b */
UlTransGuid,
0x3c419e3d,
0x1d18,
0x415b,
0xa9, 0x1a, 0x9b, 0x55, 0x89, 0x38, 0xde, 0x4b
);
DEFINE_GUID( /* dd5ef90a-6398-47a4-ad34-4dcecdef795f */
UlControlGuid,
0xdd5ef90a,
0x6398,
0x47a4,
0xad, 0x34, 0x4d, 0xce, 0xcd, 0xef, 0x79, 0x5f
);
//
// UL Specific Event Levels are defined here
//
#define ULMAX_TRACE_LEVEL 4
#define ETW_LEVEL_MIN 0 // Basic Logging of cache Miss case
#define ETW_LEVEL_CP 1 // Capacity Planning Resource Tracking
#define ETW_LEVEL_DBG 2 // Performance Analysis or Debug Tracing
#define ETW_LEVEL_MAX 3 // Very Detailed Debugging trace
#define ETW_FLAG_LOG_URL 0x00000001 // Log Url for ULDELIVER event.
//
// UL specific EventTypes are defined here.
//
#define ETW_TYPE_START 0x01 // Request is received
#define ETW_TYPE_END 0x02 // Response is sent
#define ETW_TYPE_ULPARSE_REQ 0x0A // Parse the received Request
#define ETW_TYPE_ULDELIVER 0x0B // Deliver Request to UM
#define ETW_TYPE_ULRECV_RESP 0x0C // Receive Response from UM
#define ETW_TYPE_ULRECV_RESPBODY 0x0D // Receive Entity Body
#define ETW_TYPE_CACHED_END 0x0E // Cached Response
#define ETW_TYPE_CACHE_AND_SEND 0x0F // Cache And Send Response
#define ETW_TYPE_ULRECV_FASTRESP 0x10 // Receive Resp thru fast path
#define ETW_TYPE_FAST_SEND 0x11 // Fast Send
#define ETW_TYPE_ZERO_SEND 0x12 // Last send 0 bytes
#define ETW_TYPE_SEND_ERROR 0x13 // Error sending last response
//
// Globals & Macros
//
extern LONG g_UlEtwTraceEnable;
#define ETW_LOG_MIN() (g_UlEtwTraceEnable >> ETW_LEVEL_MIN)
#define ETW_LOG_RESOURCE() (g_UlEtwTraceEnable >> ETW_LEVEL_CP)
#define ETW_LOG_DEBUG() (g_UlEtwTraceEnable >> ETW_LEVEL_DBG)
#define ETW_LOG_MAX() (g_UlEtwTraceEnable >> ETW_LEVEL_MAX)
#define ETW_LOG_URL() (UlEtwGetTraceEnableFlags() & ETW_FLAG_LOG_URL)
//
// Functions
//
NTSTATUS
UlEtwTraceEvent(
IN LPCGUID pGuid,
IN ULONG EventType,
...
);
NTSTATUS
UlEtwInitLog(
IN PDEVICE_OBJECT pDeviceObject
);
NTSTATUS
UlEtwUnRegisterLog(
IN PDEVICE_OBJECT pDeviceObject
);
ULONG
UlEtwGetTraceEnableFlags(
VOID
);
#endif // _ULETW_H_