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.
204 lines
7.7 KiB
204 lines
7.7 KiB
#
|
|
# Default types for WPP
|
|
#
|
|
|
|
# our basic arithmetic types
|
|
|
|
DEFINE_SIMPLE_TYPE( SBYTE, signed char, ItemChar, "d", c, 1);
|
|
DEFINE_SIMPLE_TYPE( SSHORT, signed short, ItemShort, "hd", h, 2);
|
|
DEFINE_SIMPLE_TYPE( SINT, signed int, ItemLong, "d", d, 4);
|
|
DEFINE_SIMPLE_TYPE( SLONG, signed long, ItemLong, "ld", l, 4);
|
|
DEFINE_SIMPLE_TYPE( SINT64, signed __int64, ItemLongLong, "I64d", i, 8);
|
|
|
|
DEFINE_SIMPLE_TYPE( UBYTE, unsigned char, ItemChar, "u", C, 1);
|
|
DEFINE_SIMPLE_TYPE( USHORT, unsigned short, ItemShort, "hu", H, 2);
|
|
DEFINE_SIMPLE_TYPE( UINT, unsigned int, ItemLong, "u", D, 4);
|
|
DEFINE_SIMPLE_TYPE( ULONG, unsigned long, ItemLong, "lu", L, 4);
|
|
DEFINE_SIMPLE_TYPE( UINT64, unsigned __int64, ItemLongLong, "I64u", I, 8);
|
|
|
|
DEFINE_SIMPLE_TYPE( DOUBLE, double, ItemDouble, "s", g, 8);
|
|
|
|
# arch dependent types
|
|
|
|
DEFINE_SIMPLE_TYPE( SLONGPTR, LONG_PTR, ItemPtr, "Id", p, 6);
|
|
DEFINE_SIMPLE_TYPE( ULONGPTR, ULONG_PTR, ItemPtr, "Iu", P, 6);
|
|
DEFINE_SIMPLE_TYPE( PTR, const void*, ItemPtr, "p", q, 6);
|
|
DEFINE_SIMPLE_TYPE( HANDLE, const void*, ItemPtr, "p", Q, 6);
|
|
|
|
# predefined constants
|
|
|
|
DEFINE_SIMPLE_TYPE( COMPNAME,,, "__COMPNAME__",,);
|
|
DEFINE_SIMPLE_TYPE( FILE,,, "__FILE__",,);
|
|
DEFINE_SIMPLE_TYPE( LINE,,, "__LINE__",,);
|
|
DEFINE_SIMPLE_TYPE( FUNC,,, "%!FUNC!",,); // traceprt now understands %!FUNC!
|
|
DEFINE_SIMPLE_TYPE( LEVEL,,, "%!LEVEL!",,); // and %!LEVEL%
|
|
|
|
DEFINE_SIMPLE_TYPE( STDPREFIX,,, "%0",,);
|
|
DEFINE_SIMPLE_TYPE( MOD,,, "%1!s!",,);
|
|
DEFINE_SIMPLE_TYPE( TYP,,, "%2!s!",,);
|
|
DEFINE_SIMPLE_TYPE( TID,,, "%3!x!",,);
|
|
DEFINE_SIMPLE_TYPE( NOW,,, "%4!s!",,);
|
|
DEFINE_SIMPLE_TYPE( SEQ,,, "%7!x!",,);
|
|
DEFINE_SIMPLE_TYPE( PID,,, "%8!x!",,);
|
|
DEFINE_SIMPLE_TYPE( CPU,,, "%9!x!",,);
|
|
DEFINE_SIMPLE_TYPE( SPACE,,, " ",,);
|
|
|
|
DEFINE_SIMPLE_TYPE_PTR(GUID, LPCGUID, ItemGuid, "s", _guid_, 0); // simple type, passed by addr
|
|
|
|
DEFINE_FLAVOR( UCHAR, SBYTE, ItemUChar, "c" );
|
|
DEFINE_FLAVOR( SCHAR, SBYTE, ItemChar, "c" );
|
|
DEFINE_FLAVOR( BOOLEAN, SBYTE, ItemListByte(FALSE,TRUE), "s");
|
|
|
|
|
|
# all strings require custom processing
|
|
|
|
DEFINE_CPLX_TYPE(ASTR, WPP_LOGASTR, const char*, ItemString, "s", s, 0);
|
|
DEFINE_CPLX_TYPE(ARSTR, WPP_LOGASTR, LPCSTR, ItemRString, "s", t, 0);
|
|
DEFINE_CPLX_TYPE(ARWSTR, WPP_LOGWSTR, LPCWSTR, ItemRWString, "s", S, 0);
|
|
DEFINE_CPLX_TYPE(WSTR, WPP_LOGWSTR, LPCWSTR, ItemWString, "s", S, 0);
|
|
DEFINE_CPLX_TYPE(CSTR, WPP_LOGPCSTR, PCSTRING, ItemPString, "s", z, 0, 2);
|
|
DEFINE_CPLX_TYPE(USTR, WPP_LOGPUSTR, PCUNICODE_STRING,ItemPWString,"s", Z, 0, 2);
|
|
|
|
DEFINE_CPLX_TYPE(sid, WPP_LOGPSID, PSID, ItemSid,"s", _sid_, 0);
|
|
DEFINE_CPLX_TYPE(str, WPP_LOGSTDSTR, const std::string&, ItemString,"s", _str_, 0);
|
|
|
|
|
|
#kludge for printf like statements
|
|
|
|
DEFINE_FLAVOR(e, DOUBLE,,);
|
|
DEFINE_FLAVOR(E, DOUBLE,,);
|
|
DEFINE_FLAVOR(f, DOUBLE,,);
|
|
DEFINE_FLAVOR(g, DOUBLE,,);
|
|
DEFINE_FLAVOR(G, DOUBLE,,);
|
|
|
|
DEFINE_FLAVOR(c, SBYTE,,);
|
|
DEFINE_FLAVOR(hc, SBYTE,,);
|
|
DEFINE_FLAVOR(lc, SSHORT,,);
|
|
DEFINE_FLAVOR(wc, SSHORT,,);
|
|
DEFINE_FLAVOR(C, SSHORT,,);
|
|
|
|
DEFINE_FLAVOR(s, ASTR,,);
|
|
DEFINE_FLAVOR(hs, ASTR,,);
|
|
DEFINE_FLAVOR(S, WSTR,,);
|
|
DEFINE_FLAVOR(ws, WSTR,,);
|
|
DEFINE_FLAVOR(ls, WSTR,,);
|
|
|
|
DEFINE_FLAVOR(hi, SSHORT,,);
|
|
DEFINE_FLAVOR(hd, SSHORT,,);
|
|
DEFINE_FLAVOR(hu, USHORT,,"u");
|
|
DEFINE_FLAVOR(hx, USHORT,,"x");
|
|
DEFINE_FLAVOR(hX, USHORT,,"X");
|
|
DEFINE_FLAVOR(ho, USHORT,,"o");
|
|
|
|
DEFINE_FLAVOR(Id, ULONGPTR,,"Id");
|
|
DEFINE_FLAVOR(Iu, ULONGPTR,,"Iu");
|
|
DEFINE_FLAVOR(Ix, ULONGPTR,,"Ix");
|
|
DEFINE_FLAVOR(IX, ULONGPTR,,"IX");
|
|
DEFINE_FLAVOR(Io, ULONGPTR,,"Io");
|
|
|
|
DEFINE_FLAVOR(i, SINT,,);
|
|
DEFINE_FLAVOR(d, SINT,,);
|
|
DEFINE_FLAVOR(u, UINT,,"u");
|
|
DEFINE_FLAVOR(x, UINT,,"x");
|
|
DEFINE_FLAVOR(X, UINT,,"X");
|
|
DEFINE_FLAVOR(o, UINT,,"o");
|
|
DEFINE_FLAVOR(cccc, SINT, ItemChar4, "s");
|
|
|
|
DEFINE_FLAVOR(li, SLONG,,);
|
|
DEFINE_FLAVOR(ld, SLONG,,);
|
|
DEFINE_FLAVOR(lu, ULONG,,"u");
|
|
DEFINE_FLAVOR(lx, ULONG,,"x");
|
|
DEFINE_FLAVOR(lX, ULONG,,"X");
|
|
DEFINE_FLAVOR(lo, ULONG,,"o");
|
|
|
|
DEFINE_FLAVOR(I64d, SINT64,,);
|
|
DEFINE_FLAVOR(I64u, UINT64,,);
|
|
DEFINE_FLAVOR(I64x, UINT64,,"I64x");
|
|
DEFINE_FLAVOR(I64X, UINT64,,"I64X");
|
|
DEFINE_FLAVOR(I64o, UINT64,,"I64o");
|
|
|
|
DEFINE_FLAVOR(p, PTR,,);
|
|
|
|
DEFINE_FLAVOR(Z, USTR,,);
|
|
DEFINE_FLAVOR(wZ, USTR,,);
|
|
DEFINE_FLAVOR(z, CSTR,,);
|
|
DEFINE_FLAVOR(hZ, CSTR,,);
|
|
|
|
# default formats for those who don't care to provide their own strings
|
|
|
|
DEFINE_FLAVOR(XBYTE, SBYTE,, "02x");
|
|
DEFINE_FLAVOR(OBYTE, SBYTE,, "o");
|
|
|
|
DEFINE_FLAVOR(XSHORT, SSHORT,, "04hX");
|
|
DEFINE_FLAVOR(OSHORT, SSHORT,, "ho");
|
|
|
|
DEFINE_FLAVOR(XINT, SINT,, "08x");
|
|
DEFINE_FLAVOR(OINT, SINT,, "o");
|
|
|
|
DEFINE_FLAVOR(XLONG, SLONG,, "08lX");
|
|
DEFINE_FLAVOR(OLONG, SLONG,, "lo");
|
|
|
|
DEFINE_FLAVOR(XINT64, SINT64,, "08i64X");
|
|
DEFINE_FLAVOR(OINT64, SINT64,, "i64o");
|
|
|
|
DEFINE_FLAVOR(XLONGPTR, SLONGPTR,,"Ix");
|
|
DEFINE_FLAVOR(OLONGPTR, SLONGPTR,,"Ox");
|
|
|
|
# special formats
|
|
|
|
DEFINE_FLAVOR(IPADDR, UINT, ItemIPAddr, "s");
|
|
DEFINE_FLAVOR(PORT, USHORT, ItemPort, "s");
|
|
DEFINE_FLAVOR(STATUS, UINT, ItemNTSTATUS, "s");
|
|
DEFINE_FLAVOR(WINERROR, UINT, ItemWINERROR, "s");
|
|
DEFINE_FLAVOR(HRESULT, SINT, ItemHRESULT, "s");
|
|
|
|
DEFINE_FLAVOR(ipaddr,IPADDR,,);
|
|
DEFINE_FLAVOR(port,PORT,,);
|
|
DEFINE_FLAVOR(status,STATUS,,);
|
|
DEFINE_FLAVOR(hresult,HRESULT,,);
|
|
DEFINE_FLAVOR(winerr,WINERROR,,);
|
|
DEFINE_FLAVOR(guid,GUID,,);
|
|
|
|
# time related stuff
|
|
|
|
DEFINE_FLAVOR(TIMESTAMP, SINT64, ItemTimestamp, "s");
|
|
DEFINE_FLAVOR(TIME, SINT64, ItemTimestamp, "s");
|
|
DEFINE_FLAVOR(DATE, SINT64, ItemTimestamp, "s");
|
|
DEFINE_FLAVOR(WAITTIME, SINT64, ItemTimestamp, "s");
|
|
|
|
DEFINE_FLAVOR(due, SINT64, ItemWaitTime, "s");
|
|
DEFINE_FLAVOR(delta, SINT64, ItemTimeDelta, "s");
|
|
DEFINE_FLAVOR(datetime, SINT64, ItemTimestamp, "s");
|
|
|
|
# enumeration types
|
|
|
|
DEFINE_FLAVOR(ItemListByte, SBYTE, ItemListByte, "s");
|
|
DEFINE_FLAVOR(ItemListShort, SSHORT, ItemListShort,"s");
|
|
DEFINE_FLAVOR(ItemListLong, SLONG, ItemListLong, "s");
|
|
|
|
DEFINE_FLAVOR(ItemSetByte, UBYTE, ItemSetByte, "s");
|
|
DEFINE_FLAVOR(ItemSetShort, USHORT, ItemSetShort,"s");
|
|
DEFINE_FLAVOR(ItemSetLong, ULONG, ItemSetLong, "s");
|
|
|
|
CUSTOM_TYPE(b1, ItemSetByte(1,2,3,4,5,6,7,8) );
|
|
CUSTOM_TYPE(b2, ItemSetShort(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) );
|
|
CUSTOM_TYPE(b4, ItemSetLong(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31) );
|
|
|
|
CUSTOM_TYPE(bool, ItemListLong(false,true) );
|
|
CUSTOM_TYPE(bool16, ItemListShort(false,true) );
|
|
CUSTOM_TYPE(bool8, ItemListByte(false,true) );
|
|
|
|
CUSTOM_TYPE(irql, ItemListByte(Low,APC,DPC) );
|
|
|
|
CUSTOM_TYPE(pnpmn, ItemListByte(IRP_MN_START_DEVICE,IRP_MN_QUERY_REMOVE_DEVICE,IRP_MN_REMOVE_DEVICE,IRP_MN_CANCEL_REMOVE_DEVICE,IRP_MN_STOP_DEVICE,IRP_MN_QUERY_STOP_DEVICE,IRP_MN_CANCEL_STOP_DEVICE,IRP_MN_QUERY_DEVICE_RELATIONS,IRP_MN_QUERY_INTERFACE,IRP_MN_QUERY_CAPABILITIES,IRP_MN_QUERY_RESOURCES,IRP_MN_QUERY_RESOURCE_REQUIREMENTS,IRP_MN_QUERY_DEVICE_TEXT,IRP_MN_FILTER_RESOURCE_REQUIREMENTS,IRP_MN_PNP_14,IRP_MN_READ_CONFIG,IRP_MN_WRITE_CONFIG,IRP_MN_EJECT,IRP_MN_SET_LOCK,IRP_MN_QUERY_ID,IRP_MN_QUERY_PNP_DEVICE_STATE,IRP_MN_QUERY_BUS_INFORMATION,IRP_MN_DEVICE_USAGE_NOTIFICATION,IRP_MN_SURPRISE_REMOVAL) );
|
|
CUSTOM_TYPE(sysctrl, ItemListByte(IRP_MN_QUERY_ALL_DATA,IRP_MN_QUERY_SINGLE_INSTANCE, IRP_MN_CHANGE_SINGLE_INSTANCE, IRP_MN_CHANGE_SINGLE_ITEM, IRP_MN_ENABLE_EVENTS, IRP_MN_DISABLE_EVENTS, IRP_MN_ENABLE_COLLECTION, IRP_MN_DISABLE_COLLECTION, IRP_MN_REGINFO, IRP_MN_EXECUTE_METHOD, IRP_MN_Reserved_0a, IRP_MN_REGINFO_EX) );
|
|
|
|
# default tracing macro
|
|
|
|
FUNC DoTraceMessage(LEVEL,MSG,...);
|
|
|
|
# default prefix (use traceprt default)
|
|
|
|
USEPREFIX(*,"%!STDPREFIX!"); // traceprt will add standard prefix
|
|
|
|
WPP_FLAGS(-lookfor:WPP_INIT_TRACING); // the same flags that can be passed on the command line to tracewpp
|