HalpCmciInitializeErrorPacket
NTSTATUS __stdcall HalpCmciInitializeErrorPacket(INT64 a1, INT64 a2){
UINT8 *v3;
__int64 v4;
_HALP_ALLOC_CONTEXT *v5;
__int64 v6;
unsigned __int8 CurrentIrql;
NTSTATUS result;
v3 = 0i64;
LODWORD(v4) = HalpGetMcaPcrContext(a2);
v6 = v4;
if( !*(_QWORD *)(v4 + 16) )
{
v3 = HalpMmAllocCtxAlloc(v5, 0x160ui64);
if( !v3 )
KeBugCheckEx(0xACu, (PVOID)0x160, (PVOID)0xDA00, 0i64, 0i64);
}
CurrentIrql = KeGetCurrentIrql();
__writecr8(0xFui64);
if( v3 )
*(_QWORD *)(v6 + 16) = v3;
else
v3 = *(UINT8 **)(v6 + 16);
HalpCmcInitializeErrorPacketContents((INT64)v3);
*(_OWORD *)(*(_QWORD *)(v6 + 16) + 32i64) = CMCI_NOTIFY_TYPE_GUID;
*(_QWORD *)(v6 + 24) = a1;
result = CurrentIrql;
__writecr8(CurrentIrql);
return result;
}Referenced by:
HalpCmciInit
HalpInitializeCmc