_In_ ULONG Length,
_In_ KPROCESSOR_MODE PreviousMode);
-ULONG
-NTAPI
-KdpPrompt(
- _In_reads_bytes_(InStringLength) PCHAR UnsafeInString,
- _In_ USHORT InStringLength,
- _Out_writes_bytes_(OutStringLength) PCHAR UnsafeOutString,
- _In_ USHORT OutStringLength,
- _In_ KPROCESSOR_MODE PreviousMode
-);
-
BOOLEAN
NTAPI
KdpDetectConflicts(PCM_RESOURCE_LIST DriverList);
BOOLEAN KdIgnoreUmExceptions = FALSE;
KD_CONTEXT KdpContext;
ULONG Kd_WIN2000_Mask;
+LONG KdpTimeSlipPending;
+KDDEBUGGER_DATA64 KdDebuggerDataBlock;
VOID NTAPI PspDumpThreads(BOOLEAN SystemThreads);
typedef struct
ULONG Level;
} KD_COMPONENT_DATA;
#define MAX_KD_COMPONENT_TABLE_ENTRIES 128
-KD_COMPONENT_DATA KdComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES];
+KD_COMPONENT_DATA KdpComponentTable[MAX_KD_COMPONENT_TABLE_ENTRIES];
ULONG KdComponentTableEntries = 0;
ULONG Kd_DEFAULT_MASK = 1 << DPFLTR_ERROR_LEVEL;
ExceptionInformation[2],
OutString,
OutStringLength,
- PreviousMode);
+ PreviousMode,
+ TrapFrame,
+ ExceptionFrame);
/* Return the number of characters that we received */
Context->Eax = ReturnValue;
/* PUBLIC FUNCTIONS *********************************************************/
+VOID
+NTAPI
+KdUpdateDataBlock(VOID)
+{
+}
+
/*
* @implemented
*/
return STATUS_SUCCESS;
}
+NTSTATUS
+NTAPI
+KdEnableDebuggerWithLock(IN BOOLEAN NeedLock)
+{
+ return STATUS_ACCESS_DENIED;
+}
+
/*
* @implemented
*/
for (i = 0; i < KdComponentTableEntries; i++)
{
/* Check if it is the right component */
- if (ComponentId == KdComponentTable[i].ComponentId)
+ if (ComponentId == KdpComponentTable[i].ComponentId)
{
/* Check if mask are matching */
- return (Level & KdComponentTable[i].Level) ? TRUE : FALSE;
+ return (Level & KdpComponentTable[i].Level) ? TRUE : FALSE;
}
}
}
/* Search for an existing entry */
for (i = 0; i < KdComponentTableEntries; i++ )
{
- if (ComponentId == KdComponentTable[i].ComponentId)
+ if (ComponentId == KdpComponentTable[i].ComponentId)
break;
}
/* Add a new entry */
++KdComponentTableEntries;
- KdComponentTable[i].ComponentId = ComponentId;
- KdComponentTable[i].Level = Kd_DEFAULT_MASK;
+ KdpComponentTable[i].ComponentId = ComponentId;
+ KdpComponentTable[i].Level = Kd_DEFAULT_MASK;
}
/* Update entry table */
if (State)
- KdComponentTable[i].Level |= Level;
+ KdpComponentTable[i].Level |= Level;
else
- KdComponentTable[i].Level &= ~Level;
+ KdpComponentTable[i].Level &= ~Level;
return STATUS_SUCCESS;
}
STRING KdpPromptString = RTL_CONSTANT_STRING("kdb:> ");
extern KSPIN_LOCK KdpSerialSpinLock;
-ULONG
+USHORT
NTAPI
KdpPrompt(
_In_reads_bytes_(InStringLength) PCHAR UnsafeInString,
_In_ USHORT InStringLength,
_Out_writes_bytes_(OutStringLength) PCHAR UnsafeOutString,
_In_ USHORT OutStringLength,
- _In_ KPROCESSOR_MODE PreviousMode)
+ _In_ KPROCESSOR_MODE PreviousMode,
+ _In_ PKTRAP_FRAME TrapFrame,
+ _In_ PKEXCEPTION_FRAME ExceptionFrame)
{
USHORT i;
CHAR Response;
}
/* Check if we need to save the context for KD */
-#ifdef _WINKD_
if (!KdPitchDebugger) KdDebuggerDataBlock.SavedContext = (ULONG_PTR)&Context;
-#endif
/* Check if a debugger is connected */
if ((BugCheckCode != MANUALLY_INITIATED_CRASH) && (KdDebuggerEnabled))
if (!(KdDebuggerEnabled) && !(KdPitchDebugger))
{
/* Enable it */
-#ifdef _WINKD_
KdEnableDebuggerWithLock(FALSE);
-#endif
}
else
{