KdpPrintString
UINT8 __stdcall KdpPrintString(_STRING *Output){
UINT64 Length;
char *Buffer;
UINT64 Flags;
UINT64 ActualSize;
__int128 v6;
__int128 v7;
int v8;
__int16 v9;
__int16 Number;
int v11;
int v12;
Length = Output->Length;
Buffer = Output->Buffer;
LODWORD(ActualSize) = 0;
v12 = 0;
LODWORD(Flags) = 4;
v6 = 0i64;
v7 = 0i64;
KdpCopyMemoryChunks((UINT64)Buffer, &KdpMessageBuffer, Length, 0i64, Flags, &ActualSize);
if( (unsigned __int64)(unsigned int)ActualSize + 16 > (unsigned int)KdTransportMaxPacketSize )
LODWORD(ActualSize) = KdTransportMaxPacketSize - 16;
v9 = KeProcessorLevel;
v8 = 12848;
Number = KeGetPcr()->Prcb.Number;
LOWORD(v7) = 16;
*((_QWORD *)&v7 + 1) = &v8;
v11 = ActualSize;
LOWORD(v6) = ActualSize;
*((_QWORD *)&v6 + 1) = &KdpMessageBuffer;
KdSendPacket(3i64, &v7, &v6, &KdpContext);
return KdpPollBreakInWithPortLock();
}Referenced by:
KdRefreshDebuggerNotPresent
KdpPrint