35 #ifdef WPP_EVENT_TRACING 36 #include "ParaNdis-Debug.tmh" 104 #if !defined(WPP_EVENT_TRACING) || defined(WPP_USE_BYPASS) 105 #if defined(DPFLTR_MASK) 113 #if defined(VIRTIO_DBG_USE_IOPORT) 143 #pragma message("DebugPrint for Win2K") 185 #ifdef OVERRIDE_DEBUG_BREAK 186 static PUCHAR pDbgBreakPoint;
187 static UCHAR DbgBreakPointChunk[5];
188 static void AnotherDbgBreak()
190 DPrintf(0, (
"Somebody tried to break into the debugger!"));
219 #ifdef OVERRIDE_DEBUG_BREAK 229 DPrintf(0, (
"Replacing original BP handler at %p", pDbgBreakPoint));
232 RtlCopyMemory(DbgBreakPointChunk, pDbgBreakPoint,
sizeof(DbgBreakPointChunk));
241 #ifdef OVERRIDE_DEBUG_BREAK 242 if (
sizeof(
PVOID) ==
sizeof(
ULONG) && pDbgBreakPoint)
244 DPrintf(0, (
"Restoring original BP handler at %p", pDbgBreakPoint));
245 RtlCopyMemory(pDbgBreakPoint, DbgBreakPointChunk,
sizeof(DbgBreakPointChunk));
253 #define MAX_CONTEXTS 4 254 #if defined(ENABLE_HISTORY_LOG) 255 #define MAX_HISTORY 0x40000 257 #define MAX_HISTORY 2 368 #if defined(ENABLE_HISTORY_LOG) 387 #if (PARANDIS_DEBUG_HISTORY_DATA_VERSION == 1) #define KeGetCurrentIrql()
struct _tagBugCheckStaticData tBugCheckStaticData
unsigned __int3264 UINT_PTR
VOID EXPORT NdisAllocateSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
BOOLEAN NTAPI KeDeregisterBugCheckReasonCallbackDummyProc(__inout PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord)
void ParaNdis_CallOnBugCheck(PARANDIS_ADAPTER *pContext)
static vDbgPrintExType PrintProcedure
static KeDeregisterBugCheckReasonCallbackType BugCheckDeregisterCallback
ACPI_SIZE strlen(const char *String)
void _LogOutEntry(int level, const char *s)
defined(WPP_EVENT_TRACING) || defined(WPP_USE_BYPASS)
DEBUGPRINTFUNC VirtioDebugPrintProc
#define NdisRawWritePortUchar(Port, Data)
VOID EXPORT NdisReleaseSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
_In_ ULONGLONG _In_ ULONGLONG _In_ BOOLEAN Enable
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
#define KeInitializeCallbackRecord(CallbackRecord)
tBugCheckStaticDataContent Data
static NDIS_SPIN_LOCK CrashLock
#define PARANDIS_DEBUG_STATIC_DATA_VERSION
_IRQL_requires_same_ typedef _In_ ULONG _In_ UCHAR Level
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char UINT32 ACPI_STATUS const char UINT32 const char const char UINT32 ComponentId
#define PARANDIS_DEBUG_PER_NIC_DATA_VERSION
BOOLEAN(NTAPI * KeRegisterBugCheckReasonCallbackType)(__out PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord, __in PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine, __in KBUGCHECK_CALLBACK_REASON Reason, __in PUCHAR Component)
tBugCheckStaticDataHeader Header
FORCEINLINE ULONG KeGetCurrentProcessorNumber(VOID)
GLenum GLuint GLenum GLsizei const GLchar * buf
_Must_inspect_result_ _In_ PFLT_GET_OPERATION_STATUS_CALLBACK CallbackRoutine
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD * Record
static KeRegisterBugCheckReasonCallbackType BugCheckRegisterCallback
KBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
NTSTRSAFEAPI RtlStringCbVPrintfA(_Out_writes_bytes_(cbDest) _Always_(_Post_z_) NTSTRSAFE_PSTR pszDest, _In_ size_t cbDest, _In_ _Printf_format_string_ NTSTRSAFE_PCSTR pszFormat, _In_ va_list argList)
PVOID NTAPI MmGetSystemRoutineAddress(IN PUNICODE_STRING SystemRoutineName)
static VOID ParaNdis_PrepareBugCheckData()
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD _Inout_ PVOID _In_ ULONG ReasonSpecificDataLength
DEBUGPRINTFUNC pDebugPrint
#define DPrintf(Level, Fmt)
struct _tagBugCheckData tBugCheckData
tBugCheckHistoryDataEntry History[MAX_HISTORY]
static UINT FillDataOnBugCheck()
KBUGCHECK_REASON_CALLBACK_ROUTINE * PKBUGCHECK_REASON_CALLBACK_ROUTINE
void _LogOutString(int level, const char *s)
enum _etagHistoryLogOperation eHistoryLogOperation
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
INT replace(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], DWORD dwFlags, BOOL *doMore)
_Must_inspect_result_ _In_ ULONG Flags
#define WPP_INIT_TRACING(a, b)
_Must_inspect_result_ _In_ WDFOBJECT _In_ CONST GUID * Guid
VOID EXPORT NdisAcquireSpinLock(IN PNDIS_SPIN_LOCK SpinLock)
static tBugCheckData BugCheckData
#define RtlPointerToOffset(Base, Pointer)
unsigned __int3264 UINT_PTR
static const GUID ParaNdis_CrashGuid
VOID WppEnableCallback(__in LPCGUID Guid, __in __int64 Logger, __in BOOLEAN Enable, __in ULONG Flags, __in UCHAR Level)
LARGE_INTEGER LastInterruptTimeStamp
static ULONG NTAPI DummyPrintProcedure(__in ULONG ComponentId, __in ULONG Level, __in PCCH Format, __in va_list arglist)
VOID EXPORT NdisInitUnicodeString(IN OUT PNDIS_STRING DestinationString, IN PCWSTR SourceString)
VOID EXPORT NdisGetCurrentSystemTime(IN OUT PLARGE_INTEGER pSystemTime)
#define memcpy(s1, s2, n)
static void FORCEINLINE ParaNdis_DebugHistory(PARANDIS_ADAPTER *pContext, eHistoryLogOperation op, PVOID pParam1, ULONG lParam2, ULONG lParam3, ULONG lParam4)
ULONG NTAPI DebugPrint(IN PSTRING DebugString, IN ULONG ComponentId, IN ULONG Level)
tBugCheckHistoryDataEntry_V1 tBugCheckHistoryDataEntry
#define InterlockedIncrement
#define STATUS_BUFFER_OVERFLOW
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
LARGE_INTEGER LastTxCompletionTimeStamp
tBugCheckDataLocation Location
#define DPrintfBypass(Level, Fmt)
void _LogOutExitValue(int level, const char *s, ULONG value)
tBugCheckStaticData StaticData
#define PARANDIS_GET_LAST_INTERRUPT_TIMESTAMP(p)
ULONG nofPacketsToComplete
static BOOLEAN NTAPI KeRegisterBugCheckReasonCallbackDummyProc(__out PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord, __in PKBUGCHECK_REASON_CALLBACK_ROUTINE CallbackRoutine, __in KBUGCHECK_CALLBACK_REASON Reason, __in PUCHAR Component)
void ParaNdis_DebugInitialize(PVOID DriverObject, PVOID RegistryPath)
_In_ ULONG InBufferLength
ULONG(NTAPI * vDbgPrintExType)(__in ULONG ComponentId, __in ULONG Level, __in PCCH Format, __in va_list arglist)
#define RtlCopyMemory(Destination, Source, Length)
KBUGCHECK_CALLBACK_REASON
BOOLEAN(NTAPI * KeDeregisterBugCheckReasonCallbackType)(__inout PKBUGCHECK_REASON_CALLBACK_RECORD CallbackRecord)
unsigned long long UINT64
void ParaNdis_DebugRegisterMiniport(PARANDIS_ADAPTER *pContext, BOOLEAN bRegister)
_In_ struct _KBUGCHECK_REASON_CALLBACK_RECORD _Inout_ PVOID ReasonSpecificData
static KBUGCHECK_REASON_CALLBACK_ROUTINE ParaNdis_OnBugCheck
void(* DEBUGPRINTFUNC)(const char *fmt,...)
PVOID PVOID PWCHAR PVOID USHORT PULONG Reason
static SERVICE_STATUS status
#define PARANDIS_DEBUG_HISTORY_DATA_VERSION
tBugCheckPerNicDataContent PerNicData[MAX_CONTEXTS]
void ParaNdis_DebugCleanup(PDRIVER_OBJECT pDriverObject)
_Out_ ULONG OutBufferLength
ACPI_BUFFER *RetBuffer ACPI_BUFFER *RetBuffer char ACPI_WALK_RESOURCE_CALLBACK void *Context ACPI_BUFFER *RetBuffer UINT16 ACPI_RESOURCE **ResourcePtr ACPI_GENERIC_ADDRESS *Reg UINT32 *ReturnValue UINT8 UINT8 *Slp_TypB ACPI_PHYSICAL_ADDRESS PhysicalAddress64 UINT32 UINT32 *TimeElapsed UINT32 ACPI_STATUS const char * Format