aspnetcore/src/RequestHandler/aspnetcore_event.h

551 lines
18 KiB
C++

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the MIT License. See License.txt in the project root for license information.
#ifndef __ASPNETCOREEVENT_H__
#define __ASPNETCOREEVENT_H__
/*++
Module Name:
aspnetcore_event.h
Abstract:
Header file has been generated from mof file containing
IIS trace event descriptions
--*/
//
// Start of the new provider class WWWServerTraceProvider,
// GUID: {3a2a4e84-4c21-4981-ae10-3fda0d9b0f83}
// Description: IIS: WWW Server
//
class WWWServerTraceProvider
{
public:
static
LPCGUID
GetProviderGuid( VOID )
// return GUID for the current event class
{
static const GUID ProviderGuid =
{0x3a2a4e84,0x4c21,0x4981,{0xae,0x10,0x3f,0xda,0x0d,0x9b,0x0f,0x83}};
return &ProviderGuid;
};
enum enumAreaFlags
{
// AspNetCore module events
ANCM = 0x10000
};
static
LPCWSTR
TranslateEnumAreaFlagsToString( enum enumAreaFlags EnumValue)
{
switch( (DWORD) EnumValue )
{
case 0x10000: return L"ANCM";
}
return NULL;
};
static
BOOL
CheckTracingEnabled(
IHttpTraceContext * pHttpTraceContext,
enumAreaFlags AreaFlags,
DWORD dwVerbosity )
{
HRESULT hr;
HTTP_TRACE_CONFIGURATION TraceConfig;
TraceConfig.pProviderGuid = GetProviderGuid();
hr = pHttpTraceContext->GetTraceConfiguration( &TraceConfig );
if ( FAILED( hr ) || !TraceConfig.fProviderEnabled )
{
return FALSE;
}
if ( TraceConfig.dwVerbosity >= dwVerbosity &&
( TraceConfig.dwAreas == (DWORD) AreaFlags ||
( TraceConfig.dwAreas & (DWORD)AreaFlags ) == (DWORD)AreaFlags ) )
{
return TRUE;
}
return FALSE;
};
};
//
// Start of the new event class ANCMEvents,
// GUID: {82ADEAD7-12B2-4781-BDCA-5A4B6C757191}
// Description: ANCM runtime events
//
class ANCMEvents
{
public:
static
LPCGUID
GetAreaGuid( VOID )
// return GUID for the current event class
{
static const GUID AreaGuid =
{0x82adead7,0x12b2,0x4781,{0xbd,0xca,0x5a,0x4b,0x6c,0x75,0x71,0x91}};
return &AreaGuid;
};
//
// Event: mof class name ANCMAppStart,
// Description: Start application success
// EventTypeName: ANCM_START_APPLICATION_SUCCESS
// EventType: 1
// EventLevel: 4
//
class ANCM_START_APPLICATION_SUCCESS
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId,
LPCWSTR pAppDescription
)
//
// Raise ANCM_START_APPLICATION_SUCCESS Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 1;
Event.pszEventName = L"ANCM_START_APPLICATION_SUCCESS";
Event.dwEventVersion = 1;
Event.dwVerbosity = 4;
Event.cEventItems = 2;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 2 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Items[ 1 ].pszName = L"AppDescription";
Items[ 1 ].dwDataType = HTTP_TRACE_TYPE_LPCWSTR; // mof type (string)
Items[ 1 ].pbData = (PBYTE) pAppDescription;
Items[ 1 ].cbData =
( Items[ 1 ].pbData == NULL )? 0 : ( sizeof(WCHAR) * (1 + (DWORD) wcslen( (PWSTR) Items[ 1 ].pbData ) ) );
Items[ 1 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
4 ); //Verbosity
};
};
//
// Event: mof class name ANCMAppStartFail,
// Description: Start application failed
// EventTypeName: ANCM_START_APPLICATION_FAIL
// EventType: 2
// EventLevel: 2
//
class ANCM_START_APPLICATION_FAIL
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId,
LPCWSTR pFailureDescription
)
//
// Raise ANCM_START_APPLICATION_FAIL Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 2;
Event.pszEventName = L"ANCM_START_APPLICATION_FAIL";
Event.dwEventVersion = 1;
Event.dwVerbosity = 2;
Event.cEventItems = 2;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 2 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Items[ 1 ].pszName = L"FailureDescription";
Items[ 1 ].dwDataType = HTTP_TRACE_TYPE_LPCWSTR; // mof type (string)
Items[ 1 ].pbData = (PBYTE) pFailureDescription;
Items[ 1 ].cbData =
( Items[ 1 ].pbData == NULL )? 0 : ( sizeof(WCHAR) * (1 + (DWORD) wcslen( (PWSTR) Items[ 1 ].pbData ) ) );
Items[ 1 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
2 ); //Verbosity
};
};
//
// Event: mof class name ANCMForwardStart,
// Description: Start fardwarding request
// EventTypeName: ANCM_REQUEST_FORWARD_START
// EventType: 3
// EventLevel: 4
//
class ANCM_REQUEST_FORWARD_START
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId
)
//
// Raise ANCM_REQUEST_FORWARD_START Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 3;
Event.pszEventName = L"ANCM_REQUEST_FORWARD_START";
Event.dwEventVersion = 1;
Event.dwVerbosity = 4;
Event.cEventItems = 1;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 1 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
4 ); //Verbosity
};
};
//
// Event: mof class name ANCMForwardEnd,
// Description: Finish forwarding request
// EventTypeName: ANCM_REQUEST_FORWARD_END
// EventType: 4
// EventLevel: 4
//
class ANCM_REQUEST_FORWARD_END
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId
)
//
// Raise ANCM_REQUEST_FORWARD_END Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 4;
Event.pszEventName = L"ANCM_REQUEST_FORWARD_END";
Event.dwEventVersion = 1;
Event.dwVerbosity = 4;
Event.cEventItems = 1;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 1 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
4 ); //Verbosity
};
};
//
// Event: mof class name ANCMForwardFail,
// Description: Forwarding request failure
// EventTypeName: ANCM_REQUEST_FORWARD_FAIL
// EventType: 5
// EventLevel: 2
//
class ANCM_REQUEST_FORWARD_FAIL
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId,
ULONG ErrorCode
)
//
// Raise ANCM_REQUEST_FORWARD_FAIL Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 5;
Event.pszEventName = L"ANCM_REQUEST_FORWARD_FAIL";
Event.dwEventVersion = 1;
Event.dwVerbosity = 2;
Event.cEventItems = 2;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 2 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Items[ 1 ].pszName = L"ErrorCode";
Items[ 1 ].dwDataType = HTTP_TRACE_TYPE_ULONG; // mof type (uint32)
Items[ 1 ].pbData = (PBYTE) &ErrorCode;
Items[ 1 ].cbData = 4;
Items[ 1 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
2 ); //Verbosity
};
};
//
// Event: mof class name ANCMWinHttpCallBack,
// Description: Receiving callback from WinHttp
// EventTypeName: ANCM_WINHTTP_CALLBACK
// EventType: 6
// EventLevel: 4
//
class ANCM_WINHTTP_CALLBACK
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId,
ULONG InternetStatus
)
//
// Raise ANCM_WINHTTP_CALLBACK Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 6;
Event.pszEventName = L"ANCM_WINHTTP_CALLBACK";
Event.dwEventVersion = 1;
Event.dwVerbosity = 4;
Event.cEventItems = 2;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 2 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Items[ 1 ].pszName = L"InternetStatus";
Items[ 1 ].dwDataType = HTTP_TRACE_TYPE_ULONG; // mof type (uint32)
Items[ 1 ].pbData = (PBYTE) &InternetStatus;
Items[ 1 ].cbData = 4;
Items[ 1 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
4 ); //Verbosity
};
};
//
// Event: mof class name ANCMForwardEnd,
// Description: Inprocess executing request failure
// EventTypeName: ANCM_EXECUTE_REQUEST_FAIL
// EventType: 7
// EventLevel: 2
//
class ANCM_EXECUTE_REQUEST_FAIL
{
public:
static
HRESULT
RaiseEvent(
IHttpTraceContext * pHttpTraceContext,
LPCGUID pContextId,
ULONG ErrorCode
)
//
// Raise ANCM_EXECUTE_REQUEST_FAIL Event
//
{
HTTP_TRACE_EVENT Event;
Event.pProviderGuid = WWWServerTraceProvider::GetProviderGuid();
Event.dwArea = WWWServerTraceProvider::ANCM;
Event.pAreaGuid = ANCMEvents::GetAreaGuid();
Event.dwEvent = 7;
Event.pszEventName = L"ANCM_EXECUTE_REQUEST_FAIL";
Event.dwEventVersion = 1;
Event.dwVerbosity = 2;
Event.cEventItems = 2;
Event.pActivityGuid = NULL;
Event.pRelatedActivityGuid = NULL;
Event.dwTimeStamp = 0;
Event.dwFlags = HTTP_TRACE_EVENT_FLAG_STATIC_DESCRIPTIVE_FIELDS;
// pActivityGuid, pRelatedActivityGuid, Timestamp to be filled in by IIS
HTTP_TRACE_EVENT_ITEM Items[ 2 ];
Items[ 0 ].pszName = L"ContextId";
Items[ 0 ].dwDataType = HTTP_TRACE_TYPE_LPCGUID; // mof type (object)
Items[ 0 ].pbData = (PBYTE) pContextId;
Items[ 0 ].cbData = 16;
Items[ 0 ].pszDataDescription = NULL;
Items[ 1 ].pszName = L"ErrorCode";
Items[ 1 ].dwDataType = HTTP_TRACE_TYPE_ULONG; // mof type (uint32)
Items[ 1 ].pbData = (PBYTE) &ErrorCode;
Items[ 1 ].cbData = 4;
Items[ 1 ].pszDataDescription = NULL;
Event.pEventItems = Items;
pHttpTraceContext->RaiseTraceEvent( &Event );
return S_OK;
};
static
BOOL
IsEnabled(
IHttpTraceContext * pHttpTraceContext )
// Check if tracing for this event is enabled
{
return WWWServerTraceProvider::CheckTracingEnabled(
pHttpTraceContext,
WWWServerTraceProvider::ANCM,
2 ); //Verbosity
};
};
};
#endif