break;
}
}
+
+ /* Special case for stack frame dumps */
+ case TAG('R', 'o', 's', 'D'):
+ {
+ KeRosDumpStackFrames((PULONG)Buffer1, Buffer1Length);
+ break;
+ }
#endif
default:
HalDisplayString ("Invalid debug service call!\n");
@ stdcall READ_REGISTER_UCHAR(ptr)
@ stdcall READ_REGISTER_ULONG(ptr)
@ stdcall READ_REGISTER_USHORT(ptr)
-@ stdcall KeRosDumpStackFrames(ptr long)
@ stdcall RtlAbsoluteToSelfRelativeSD(ptr ptr ptr)
@ stdcall RtlAddAccessAllowedAce(ptr long long ptr)
@ stdcall RtlAddAccessAllowedAceEx(ptr long long long ptr)
#ifdef GDI_DEBUG
-NTSYSAPI VOID APIENTRY KeRosDumpStackFrames(PULONG, ULONG);
+#define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl(TAG('R', 'o', 's', 'D'), (PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
NTSYSAPI ULONG APIENTRY RtlWalkFrameChain(OUT PVOID *Callers, IN ULONG Count, IN ULONG Flags);
static int leak_reported = 0;