114 lines
3.5 KiB
C
114 lines
3.5 KiB
C
|
/*++
|
||
|
|
||
|
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
|