📄 rtutils.h
字号:
/*++
Copyright (c) 1995 - 1997 Microsoft Corporation
Module Name:
rtutils.h
Abstract:
Public declarations for the Router process utility functions.
--*/
#ifndef __ROUTING_RTUTILS_H__
#define __ROUTING_RTUTILS_H__
#ifdef __cplusplus
extern "C" {
#endif
//////////////////////////////////////////////////////////////////////////////
// //
// TRACING FUNCTION PROTOTYPES //
// //
// See DOCUMENT for more information //
// //
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// //
// Definitions for flags and constants //
// //
//////////////////////////////////////////////////////////////////////////////
#define TRACE_USE_FILE 0x00000001
#define TRACE_USE_CONSOLE 0x00000002
#define TRACE_NO_SYNCH 0x00000004
#define TRACE_NO_STDINFO 0x00000001
#define TRACE_USE_MASK 0x00000002
#define TRACE_USE_MSEC 0x00000004
#define INVALID_TRACEID 0xFFFFFFFF
//////////////////////////////////////////////////////////////////////////////
// //
// ANSI entry-points //
// //
//////////////////////////////////////////////////////////////////////////////
DWORD
APIENTRY
TraceRegisterExA(
IN LPCSTR lpszCallerName,
IN DWORD dwFlags
);
DWORD
APIENTRY
TraceDeregisterA(
IN DWORD dwTraceID
);
DWORD
APIENTRY
TraceDeregisterExA(
IN DWORD dwTraceID,
IN DWORD dwFlags
);
DWORD
APIENTRY
TraceGetConsoleA(
IN DWORD dwTraceID,
OUT LPHANDLE lphConsole
);
DWORD
APIENTRY
TracePrintfA(
IN DWORD dwTraceID,
IN LPCSTR lpszFormat,
IN ... OPTIONAL
);
DWORD
APIENTRY
TracePrintfExA(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPCSTR lpszFormat,
IN ... OPTIONAL
);
DWORD
APIENTRY
TraceVprintfExA(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPCSTR lpszFormat,
IN va_list arglist
);
DWORD
APIENTRY
TracePutsExA(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPCSTR lpszString
);
DWORD
APIENTRY
TraceDumpExA(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPBYTE lpbBytes,
IN DWORD dwByteCount,
IN DWORD dwGroupSize,
IN BOOL bAddressPrefix,
IN LPCSTR lpszPrefix
);
//////////////////////////////////////////////////////////////////////////////
// //
// ANSI entry-points macros //
// //
//////////////////////////////////////////////////////////////////////////////
#define TraceRegisterA(a) TraceRegisterExA(a,0)
#define TraceVprintfA(a,b,c) TraceVprintfExA(a,0,b,c)
#define TracePutsA(a,b) TracePutsExA(a,0,b)
#define TraceDumpA(a,b,c,d,e,f) TraceDumpExA(a,0,b,c,d,e,f)
//////////////////////////////////////////////////////////////////////////////
// //
// Unicode entry-points //
// //
//////////////////////////////////////////////////////////////////////////////
DWORD
APIENTRY
TraceRegisterExW(
IN LPCWSTR lpszCallerName,
IN DWORD dwFlags
);
DWORD
APIENTRY
TraceDeregisterW(
IN DWORD dwTraceID
);
DWORD
APIENTRY
TraceDeregisterExW(
IN DWORD dwTraceID,
IN DWORD dwFlags
);
DWORD
APIENTRY
TraceGetConsoleW(
IN DWORD dwTraceID,
OUT LPHANDLE lphConsole
);
DWORD
APIENTRY
TracePrintfW(
IN DWORD dwTraceID,
IN LPCWSTR lpszFormat,
IN ... OPTIONAL
);
DWORD
APIENTRY
TracePrintfExW(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPCWSTR lpszFormat,
IN ... OPTIONAL
);
DWORD
APIENTRY
TraceVprintfExW(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPCWSTR lpszFormat,
IN va_list arglist
);
DWORD
APIENTRY
TracePutsExW(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPCWSTR lpszString
);
DWORD
APIENTRY
TraceDumpExW(
IN DWORD dwTraceID,
IN DWORD dwFlags,
IN LPBYTE lpbBytes,
IN DWORD dwByteCount,
IN DWORD dwGroupSize,
IN BOOL bAddressPrefix,
IN LPCWSTR lpszPrefix
);
//////////////////////////////////////////////////////////////////////////////
// //
// Unicode entry-points macros //
// //
//////////////////////////////////////////////////////////////////////////////
#define TraceRegisterW(a) TraceRegisterExW(a,0)
#define TraceVprintfW(a,b,c) TraceVprintfExW(a,0,b,c)
#define TracePutsW(a,b) TracePutsExW(a,0,b)
#define TraceDumpW(a,b,c,d,e,f) TraceDumpExW(a,0,b,c,d,e,f)
//////////////////////////////////////////////////////////////////////////////
// //
// Code-page dependent entry-point macros //
// //
//////////////////////////////////////////////////////////////////////////////
#ifdef UNICODE
#define TraceRegister TraceRegisterW
#define TraceDeregister TraceDeregisterW
#define TraceDeregisterEx TraceDeregisterExW
#define TraceGetConsole TraceGetConsoleW
#define TracePrintf TracePrintfW
#define TraceVprintf TraceVprintfW
#define TracePuts TracePutsW
#define TraceDump TraceDumpW
#define TraceRegisterEx TraceRegisterExW
#define TracePrintfEx TracePrintfExW
#define TraceVprintfEx TraceVprintfExW
#define TracePutsEx TracePutsExW
#define TraceDumpEx TraceDumpExW
#else
#define TraceRegister TraceRegisterA
#define TraceDeregister TraceDeregisterA
#define TraceDeregisterEx TraceDeregisterExA
#define TraceGetConsole TraceGetConsoleA
#define TracePrintf TracePrintfA
#define TraceVprintf TraceVprintfA
#define TracePuts TracePutsA
#define TraceDump TraceDumpA
#define TraceRegisterEx TraceRegisterExA
#define TracePrintfEx TracePrintfExA
#define TraceVprintfEx TraceVprintfExA
#define TracePutsEx TracePutsExA
#define TraceDumpEx TraceDumpExA
#endif
//////////////////////////////////////////////////////////////////////////////
// //
// EVENT LOGGING FUNCTION PROTOTYPES //
// //
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// //
// ANSI prototypes //
// //
//////////////////////////////////////////////////////////////////////////////
VOID
APIENTRY
LogErrorA(
IN DWORD dwMessageId,
IN DWORD cNumberOfSubStrings,
IN LPSTR *plpwsSubStrings,
IN DWORD dwErrorCode
);
VOID
APIENTRY
LogEventA(
IN DWORD wEventType,
IN DWORD dwMessageId,
IN DWORD cNumberOfSubStrings,
IN LPSTR *plpwsSubStrings
);
//////////////////////////////////////////////////////////////////////////////
// //
// Unicode prototypes //
// //
//////////////////////////////////////////////////////////////////////////////
VOID
LogErrorW(
IN DWORD dwMessageId,
IN DWORD cNumberOfSubStrings,
IN LPWSTR *plpwsSubStrings,
IN DWORD dwErrorCode
);
VOID
LogEventW(
IN DWORD wEventType,
IN DWORD dwMessageId,
IN DWORD cNumberOfSubStrings,
IN LPWSTR *plpwsSubStrings
);
#ifdef UNICODE
#define LogError LogErrorW
#define LogEvent LogEventW
#else
#define LogError LogErrorA
#define LogEvent LogEventA
#endif
//////////////////////////////////////////////////////////////////////////////
// //
// The following functions allow the caller to specify the event source. //
// //
// Call RouterLogRegister with the strings which would be passed to //
// RegisterEventSource; this returns a handle which can be passed //
// to the functions RouterLogEvent and RouterLogEventData. //
// //
// Call RouterLogDeregister to close the handle. //
// //
// Macros are provided for the different kinds of event log entrys: //
// RouterLogError logs an error (EVENTLOG_ERROR_TYPE) //
// RouterLogWarning logs a warning (EVENTLOG_WARNING_TYPE) //
// RouterLogInformation logs information (EVENTLOG_INFORMATION_TYPE) //
// //
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// //
// ANSI prototypes //
// //
//////////////////////////////////////////////////////////////////////////////
HANDLE
RouterLogRegisterA(
LPCSTR lpszSource
);
VOID
RouterLogDeregisterA(
HANDLE hLogHandle
);
VOID
RouterLogEventA(
IN HANDLE hLogHandle,
IN DWORD dwEventType,
IN DWORD dwMessageId,
IN DWORD dwSubStringCount,
IN LPSTR *plpszSubStringArray,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -