/*++ Copyright (c) 1992 Microsoft Corporation Module Name: errorlog.h Abstract: This module contains the manifests and macros used for error logging in the server. Author: Manny Weiser (mannyw) 11-Feb-92 Revision History: --*/ // // Routines for writing error log entries. // VOID SrvLogError ( IN PVOID DeviceOrDriverObject, IN ULONG UniqueErrorCode, IN NTSTATUS NtStatusCode, IN PVOID RawDataBuffer, IN USHORT RawDataLength, IN PUNICODE_STRING InsertionString, IN ULONG InsertionStringCount ); VOID SrvLogInvalidSmbDirect ( IN PWORK_CONTEXT WorkContext, IN ULONG LineNumber ); VOID SrvLogServiceFailureDirect ( IN ULONG LineAndService, IN NTSTATUS Status ); #define SrvLogSimpleEvent( _event, _status ) SrvLogError( SrvDeviceObject, (_event), (_status), NULL, 0, NULL, 0 ) #define SrvLogServiceFailure( _Service, _Status ) SrvLogServiceFailureDirect( (__LINE__<<16) | _Service, _Status ) #define SrvLogInvalidSmb( _Context ) SrvLogInvalidSmbDirect( _Context, __LINE__ ) VOID SrvLogTableFullError ( IN ULONG Type ); VOID SrvCheckSendCompletionStatus( IN NTSTATUS status, IN ULONG LineNumber ); // // Error log raw data constants. Used to describe allocation type or // service call that failed. These codes are encoded in the lower word // by the 'SrvLogServiceFailure' macro above, therefore the value must // fit into 2 bytes. // // Not every error is logged. There is an error code filter that weeds out // some of the most common, and somewhat expected, error codes. However, // a component bypasses this error code weeding if the 0x1 bit is set in // the constant. // // These numeric codes are arbitrary, just ensure they are unique // // #define SRV_TABLE_FILE 0x300 #define SRV_TABLE_SEARCH 0x302 #define SRV_TABLE_SESSION 0x304 #define SRV_TABLE_TREE_CONNECT 0x306 #define SRV_RSRC_BLOCKING_IO 0x308 #define SRV_RSRC_FREE_CONNECTION 0x30a #define SRV_RSRC_FREE_RAW_WORK_CONTEXT 0x30c #define SRV_RSRC_FREE_WORK_CONTEXT 0x30e #define SRV_SVC_IO_CREATE_FILE 0x310 #define SRV_SVC_KE_WAIT_MULTIPLE 0x312 #define SRV_SVC_KE_WAIT_SINGLE 0x314 #define SRV_SVC_LSA_CALL_AUTH_PACKAGE 0x317 // log all codes #define SRV_SVC_NT_IOCTL_FILE 0x31a #define SRV_SVC_NT_QUERY_EAS 0x31c #define SRV_SVC_NT_QUERY_INFO_FILE 0x31e #define SRV_SVC_NT_QUERY_VOL_INFO_FILE 0x320 #define SRV_SVC_NT_READ_FILE 0x322 #define SRV_SVC_NT_REQ_WAIT_REPLY_PORT 0x324 #define SRV_SVC_NT_SET_EAS 0x326 #define SRV_SVC_NT_SET_INFO_FILE 0x328 #define SRV_SVC_NT_SET_INFO_PROCESS 0x32a #define SRV_SVC_NT_SET_INFO_THREAD 0x32c #define SRV_SVC_NT_SET_VOL_INFO_FILE 0x32e #define SRV_SVC_NT_WRITE_FILE 0x330 #define SRV_SVC_OB_REF_BY_HANDLE 0x333 // log all codes #define SRV_SVC_PS_CREATE_SYSTEM_THREAD 0x334 #define SRV_SVC_SECURITY_PKG_PROBLEM 0x337 // log all codes #define SRV_SVC_LSA_LOOKUP_PACKAGE 0x339 // log all codes #define SRV_SVC_IO_CREATE_FILE_NPFS 0x33a #define SRV_SVC_PNP_TDI_NOTIFICATION 0x33c #define SRV_SVC_IO_FAST_QUERY_NW_ATTRS 0x33e #define SRV_SVC_PS_TERMINATE_SYSTEM_THREAD 0x341 // log all codes #define SRV_SVC_MDL_COMPLETE 0x342