Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

159 lines
3.5 KiB

#include "pch.h"
#if DBG
SOFTPCI_DEBUGLEVEL g_SoftPCIDebugLevel = SoftPciAlways;
WCHAR g_SoftPCIDebugBuffer[SOFTPCI_DEBUG_BUFFER_SIZE];
#define MAX_BUF_SIZE 512
VOID
SoftPCI_DebugPrint(
SOFTPCI_DEBUGLEVEL DebugLevel,
PWCHAR DebugMessage,
...
)
/*++
Routine Description:
Debug print for SoftPCI UI.
Arguments:
Return Value:
None
--*/
{
va_list ap;
WCHAR debugBuffer[SOFTPCI_DEBUG_BUFFER_SIZE];
va_start(ap, DebugMessage);
if ((DebugLevel == SoftPciAlways) ||
(DebugLevel & g_SoftPCIDebugLevel)) {
_vsnwprintf(debugBuffer, (sizeof(debugBuffer)/sizeof(debugBuffer[0])), DebugMessage, ap);
if (!(DebugLevel & SoftPciNoPrepend)) {
wcscpy(g_SoftPCIDebugBuffer, L"SOFTPCI: ");
wcscat(g_SoftPCIDebugBuffer, debugBuffer);
}else{
wcscpy(g_SoftPCIDebugBuffer, debugBuffer);
}
OutputDebugString(g_SoftPCIDebugBuffer);
}
va_end(ap);
}
VOID
SoftPCI_Assert(
IN CONST CHAR* FailedAssertion,
IN CONST CHAR* FileName,
IN ULONG LineNumber,
IN CONST CHAR* Message OPTIONAL
)
{
INT result;
CHAR buffer[MAX_BUF_SIZE];
PWCHAR wbuffer = NULL, p;
sprintf(buffer,
"%s%s\nSource File: %s, line %ld\n\n",
Message ? Message : "",
Message ? "" : FailedAssertion,
FileName,
LineNumber
);
wbuffer = (PWCHAR) malloc(MAX_BUF_SIZE * sizeof(WCHAR));
if (wbuffer) {
//
// Build a string to output to the debugger window
//
p = wbuffer;
if (Message == NULL) {
wcscpy(wbuffer, L"\nAssertion Failed: ");
p += wcslen(wbuffer);
}
//
// Convert it to unicode so we can debug print it.
//
MultiByteToWideChar(CP_THREAD_ACP,
MB_PRECOMPOSED,
buffer,
-1,
p,
MAX_BUF_SIZE
);
}
strcat(buffer, "OK to debug, CANCEL to ignore\n\n");
result = MessageBoxA(g_SoftPCIMainWnd ? g_SoftPCIMainWnd : NULL,
buffer,
"*** Assertion failed ***",
MB_OKCANCEL);
if (wbuffer) {
SoftPCI_Debug(SoftPciAlways, wbuffer);
free(wbuffer);
}
if (result == IDOK) {
//
// User wants to debug this so init a breakin
//
DebugBreak();
}
}
VOID
SoftPCI_DebugDumpConfig(
IN PPCI_COMMON_CONFIG Config
)
{
PULONG p = (PULONG)&Config;
ULONG i = 0;
//
// Dump the configspace buffer we are going to send in the ioctl
//
SoftPCI_Debug(SoftPciDeviceVerbose, L"CreateDevice - ConfigSpace\n");
for (i=0; i < (sizeof(PCI_COMMON_CONFIG) / sizeof(ULONG)); i++) {
SoftPCI_Debug(SoftPciDeviceVerbose | SoftPciNoPrepend, L"%08x", *p);
if ((((i+1) % 4) == 0) ||
((i+1) == (sizeof(PCI_COMMON_CONFIG) / sizeof(ULONG)))) {
SoftPCI_Debug(SoftPciDeviceVerbose | SoftPciNoPrepend, L"\n");
}else{
SoftPCI_Debug(SoftPciDeviceVerbose | SoftPciNoPrepend, L",");
}
p++;
}
}
#endif