238 lines
12 KiB
C#
238 lines
12 KiB
C#
//---------------------------------------------------------------------------------------------------------------
|
|
// <copyright file="Program.cs" company="Microsoft">
|
|
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
//
|
|
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
|
|
// KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
|
|
// IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
|
|
// PURPOSE.
|
|
//
|
|
// </copyright>
|
|
// <summary>
|
|
// Advanced ETW eventing provider sample for Windows 7 SDK.
|
|
// Demonstrates how to easily create a ETW provider using the methods generated by MC (Message Compiler).
|
|
// </summary>
|
|
//---------------------------------------------------------------------------------------------------------------
|
|
namespace AdvancedProvider
|
|
{
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Security.Principal;
|
|
|
|
/// <summary>
|
|
/// Program class defines the Main method.
|
|
/// </summary>
|
|
class Program
|
|
{
|
|
/// <summary>
|
|
/// Calls the methods defined in the generated code (AdvancedProviderEvents.cs) and
|
|
/// logs event data for each event defined in the manifest (AdvancedProvider.man).
|
|
/// </summary>
|
|
static void Main(string[] args)
|
|
{
|
|
|
|
MicrosoftWindowsSDKSampleAdvancedProviderCs advProvider = new MicrosoftWindowsSDKSampleAdvancedProviderCs();
|
|
|
|
SecurityIdentifier sidWellKnow = new SecurityIdentifier(WellKnownSidType.BuiltinAdministratorsSid, null);
|
|
DateTime timeIn = DateTime.Now;
|
|
|
|
|
|
// Write Integer data for Event ID 102 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_INT8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_INT8().");
|
|
|
|
|
|
// Write Integer data for Event ID 103 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_UINT8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT8().");
|
|
|
|
// Write Integer data for Event ID 104 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_UINT8_HEXINT8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT8_HEXINT8().");
|
|
|
|
// Write Integer data for Event ID 105 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_INT16(1);
|
|
Console.WriteLine("EventWriteSampleEvt_INT16().");
|
|
|
|
// Write Integer data for Event ID 106 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT16(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT16().");
|
|
|
|
// Write Integer data for Event ID 107 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_UINT16_HexInt16(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT16_HexInt16().");
|
|
|
|
// Write Integer data for Event ID 108 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_INT32(1);
|
|
Console.WriteLine("EventWriteSampleEvt_INT32().");
|
|
|
|
// Write Integer data for Event ID 109 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT32(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT32().");
|
|
|
|
// Write Integer data for Event ID 110 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT32_PID(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT32_PID().");
|
|
|
|
// Write Integer data for Event ID 111 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT32_TID(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT32_TID().");
|
|
|
|
// Write Integer data for Event ID 112 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT32_IPV4(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT32_IPV4().");
|
|
|
|
// Write Integer data for Event ID 114 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT32_ERRORCODE(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT32_ERRORCODE().");
|
|
|
|
// Write Integer data for Event ID 115 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT32_HEXINT32(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT32_HEXINT32().");
|
|
|
|
// Write Integer data for Event ID 116 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_INT64(1);
|
|
Console.WriteLine("EventWriteSampleEvt_INT64().");
|
|
|
|
// Write Integer data for Event ID 117 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT64(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT64().");
|
|
|
|
// Write Integer data for Event ID 118 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UINT64_HEXInt64(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UINT64_HEXInt64().");
|
|
|
|
// Write Float data for Event ID 119 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_FLOAT(1);
|
|
Console.WriteLine("EventWriteSampleEvt_FLOAT().");
|
|
|
|
// Write Double data for Event ID 120 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_DOUBLE(1);
|
|
Console.WriteLine("EventWriteSampleEvt_DOUBLE().");
|
|
|
|
// Write Boolean for Event ID 121 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_BOOL(true);
|
|
Console.WriteLine("EventWriteSampleEvt_BOOL().");
|
|
|
|
// Write GUID data for Event ID 125 in AdvancedProvider.man
|
|
Guid ProGuid = new Guid("21a9201e-73b0-43fe-9821-7e159a59bc70");
|
|
advProvider.EventWriteSampleEvt_GUID(ProGuid);
|
|
Console.WriteLine("EventWriteSampleEvt_GUID().");
|
|
|
|
// Write Pointer data for Event ID 126 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_POINTER(IntPtr.Zero);
|
|
Console.WriteLine("EventWriteSampleEvt_POINTER().");
|
|
|
|
// Write DateTime Event ID 127 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_FILETIME(timeIn);
|
|
Console.WriteLine("EventWriteSampleEvt_FILETIME().");
|
|
|
|
// Write SecurityIdentifier Event ID 129 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_SID(sidWellKnow);
|
|
Console.WriteLine("EventWriteSampleEvt_SID().");
|
|
|
|
// Write NULL terminated unicode string for Event ID 200 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_UnicodeString("Sample UnicodeString");
|
|
Console.WriteLine("EventWriteSampleEvt_UnicodeString().");
|
|
|
|
// Write Fixed length unicode string for Event ID 202 in AdvancedProvider.man.
|
|
String Prop_FixedLength_Unicode_String;
|
|
Prop_FixedLength_Unicode_String = "Unicode String";
|
|
advProvider.EventWriteSampleEvt_FixedLength_UnicodeString(Prop_FixedLength_Unicode_String);
|
|
Console.WriteLine("EventWriteSampleEvt_FixedLength_UnicodeString().");
|
|
|
|
// Write parametrized length Unicode string for Event ID 205 in AdvancedProvider.man
|
|
String Prop_ParamLength_UnicodeString = "Param Length Unicode String.";
|
|
uint Prop_ParamLength_UnicodString_Length = Convert.ToUInt16(Prop_ParamLength_UnicodeString.Length);
|
|
advProvider.EventWriteSampleEvt_ParamLength_UnicodeString(Prop_ParamLength_UnicodString_Length, Prop_ParamLength_UnicodeString);
|
|
Console.WriteLine("EventWriteSampleEvt_ParamLength_UnicodeString().");
|
|
|
|
// Write Parametrized count Integer data array for Event ID 309 in AdvancedProvider.man
|
|
byte[] Prop_ParamCount_Int8 = { Convert.ToByte('a'), Convert.ToByte('b'), Convert.ToByte('c'), Convert.ToByte('d') };
|
|
//advProvider.EventWriteSampleEvt_ParamCount_Int8(Convert.ToByte(4), Prop_ParamCount_Int8);
|
|
Console.WriteLine("EventWriteSampleEvt_ParamCount_Int8().");
|
|
|
|
// Write NULL terminated unicode string under User defined channels for Event ID 600
|
|
advProvider.EventWriteSampleEvt_UserChannel_UnicodeString("UnicodeString");
|
|
Console.WriteLine("EventWriteSampleEvt_UserChannel_UnicodeString().");
|
|
|
|
// Write Integer data under User defined channel for Event ID 601 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UserChannel_UINT8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UserChannel_UINT8().");
|
|
|
|
// Write Integer data with User defined keyword for Event ID 602 in AdvancedProvider.man
|
|
advProvider.EventWriteSampleEvt_UserKeyword_UINT8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_UserKeyword_UINT8().");
|
|
|
|
// UnAligned template data.
|
|
byte Prop_Alignment_UInt8_UnicodeString_1 = 97;
|
|
String Prop_Alignment_UInt8_UnicodeString_2 = "UnAligned UnicodeString...";
|
|
advProvider.EventWriteSampleEvt_Alignment_UInt8_UnicodeString(Prop_Alignment_UInt8_UnicodeString_1, Prop_Alignment_UInt8_UnicodeString_2);
|
|
Console.WriteLine("EventWriteSampleEvt_Alignment_UInt8_UnicodeString().");
|
|
|
|
// Value Map for Event ID 605 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_ValueMap_UInt8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_ValueMap_UInt8().");
|
|
|
|
// Value Map for Event ID 605 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_ValueMap_UInt8(2);
|
|
Console.WriteLine("EventWriteSampleEvt_ValueMap_UInt8().");
|
|
|
|
// Value Map for Event ID 605 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_ValueMap_UInt8(3);
|
|
Console.WriteLine("EventWriteSampleEvt_ValueMap_UInt8().");
|
|
|
|
// Value map for Event ID 605 but value not defined in the manifiset.
|
|
advProvider.EventWriteSampleEvt_ValueMap_UInt8(5);
|
|
Console.WriteLine("EventWriteSampleEvt_ValueMap_UInt8().");
|
|
|
|
// Bit Map for Event ID 606 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_BitMap_UInt8(1);
|
|
Console.WriteLine("EventWriteSampleEvt_BitMap_UInt8().");
|
|
|
|
// Bit Map for Event ID 606 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_BitMap_UInt8(2);
|
|
Console.WriteLine("EventWriteSampleEvt_BitMap_UInt8().");
|
|
|
|
// Bit Map for Event ID 606 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_BitMap_UInt8(3);
|
|
Console.WriteLine("EventWriteSampleEvt_BitMap_UInt8().");
|
|
|
|
// Bit Map for Event ID 606 but value not in the manifest.
|
|
advProvider.EventWriteSampleEvt_BitMap_UInt8(8);
|
|
Console.WriteLine("EventWriteSampleEvt_BitMap_UInt8().");
|
|
|
|
// Win32Error values.
|
|
advProvider.EventWriteSampleEvt_UInt32_Win32Error(122);
|
|
Console.WriteLine("EventWriteSampleEvt_UInt32_Win32Error().");
|
|
|
|
// NTbReturn Error values.
|
|
advProvider.EventWriteSampleEvt_UInt32_NTSTATUS(0);
|
|
Console.WriteLine("EventWriteSampleEvt_UInt32_NTbReturn().");
|
|
|
|
// HResult Error Values.
|
|
advProvider.EventWriteSampleEvt_Int32_HResult(-1);
|
|
Console.WriteLine("EventWriteSampleEvt_Int32_HResult().");
|
|
|
|
// duplicate event IDs, different version.
|
|
advProvider.EventWriteSampleEvt_INT8_V1(1);
|
|
Console.WriteLine("EventWriteSampleEvt_INT8_V1().");
|
|
|
|
// Write Integer data for Event ID 102, Version 1 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_INT8_V2(1);
|
|
Console.WriteLine("EventWriteSampleEvt_INT8_V2().");
|
|
|
|
// Write NULL terminated Unicdoe string for Event ID 200, Version 1 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_UnicodeString_V1("Unicode String on Event Version 1");
|
|
Console.WriteLine("EventWriteSampleEvt_UnicodeString_V1().");
|
|
|
|
// Write Fixed count Integer for Event ID 702, Version 2 in AdvancedProvider.man.
|
|
advProvider.EventWriteSampleEvt_Int32_HResult_V2(-1);
|
|
Console.WriteLine("EventWriteSampleEvt_Int32_HResult_V2().");
|
|
|
|
}
|
|
}
|
|
}
|