|
|
# # Default types for WPP #
# our basic arithmetic types
DEFINE_SIMPLE_TYPE( SBYTE, signed char, ItemChar, "d"); DEFINE_SIMPLE_TYPE( SSHORT, signed short, ItemShort, "hd"); DEFINE_SIMPLE_TYPE( SINT, signed int, ItemInt, "d"); DEFINE_SIMPLE_TYPE( SLONG, signed long, ItemLong, "ld"); DEFINE_SIMPLE_TYPE( SINT64, signed _int64, ItemLongLong, "I64d");
DEFINE_FLAVOR( UCHAR, SBYTE, ItemUChar, "c" ); DEFINE_FLAVOR( SCHAR, SBYTE, ItemChar, "c" ); DEFINE_FLAVOR( BOOLEAN, SBYTE, ItemListByte(FALSE,TRUE), "s");
# arch dependent types
DEFINE_SIMPLE_TYPE( SLONGPTR, void*, ItemPtr, "p"); DEFINE_SIMPLE_TYPE( PTR, void*, ItemPtr, "p"); DEFINE_SIMPLE_TYPE( HANDLE, void*, ItemPtr, "p");
# all strings require custom processing
DEFINE_CPLX_TYPE(ASTR, WPP_LOGASTR, ItemString, "s"); DEFINE_CPLX_TYPE(ARSTR, WPP_LOGASTR, ItemRString, "s"); DEFINE_CPLX_TYPE(WSTR, WPP_LOGWSTR, ItemWString, "s"); DEFINE_CPLX_TYPE(CSTR, WPP_LOGCSTR, ItemPString, "s"); DEFINE_CPLX_TYPE(USTR, WPP_LOGUSTR, ItemPWString, "s");
# default formats for those who don't care to provide their own strings
DEFINE_FLAVOR(UBYTE, SBYTE,, "u"); DEFINE_FLAVOR(XBYTE, SBYTE,, "02x"); DEFINE_FLAVOR(OBYTE, SBYTE,, "o");
DEFINE_FLAVOR(USHORT, SSHORT, ItemUShort, "hu"); DEFINE_FLAVOR(XSHORT, SSHORT,, "04hX"); DEFINE_FLAVOR(OSHORT, SSHORT,, "ho");
DEFINE_FLAVOR(UINT, SINT, ItemUInt, "u"); DEFINE_FLAVOR(XINT, SINT,, "08x"); DEFINE_FLAVOR(OINT, SINT,, "o");
DEFINE_FLAVOR(ULONG, SLONG, ItemULong, "lu"); DEFINE_FLAVOR(XLONG, SLONG,, "08lX"); DEFINE_FLAVOR(OLONG, SLONG,, "lo");
DEFINE_FLAVOR(UINT64, SINT64,, "i64u"); DEFINE_FLAVOR(XINT64, SINT64,, "08i64X"); DEFINE_FLAVOR(OINT64, SINT64,, "i64o");
DEFINE_FLAVOR(ULONGPTR, SLONGPTR,,); DEFINE_FLAVOR(XLONGPTR, SLONGPTR,,); DEFINE_FLAVOR(OLONGPTR, SLONGPTR,,);
# 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(PORT, USHORT, ItemPort, "s"); DEFINE_SIMPLE_TYPE(GUID, GUID, ItemGuid, "s");
# 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(TIMEDELTA, SINT64, ItemTimestamp, "s");
# enumeration types
DEFINE_FLAVOR(ItemListByte, SBYTE, ItemListByte, "s"); DEFINE_FLAVOR(ItemListShort, SSHORT, ItemListShort,"s"); DEFINE_FLAVOR(ItemListLong, SLONG, ItemListLong, "s");
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) );
# default tracing macro
SimpleTrace(MSG,ARG); SimpleTraceEx(GRP,MSG,ARG);
USEPREFIX(*, "[%9!x!].%3!03x!::%4 [%1] ");
|