MiInitializeSessionIds
INT64 __stdcall MiInitializeSessionIds(){
struct _RTL_BITMAP *v0;
INT64 result;
UNICODE_STRING v2;
__int16 BugCheckParameter3;
char BugCheckParameter3_2;
int v5;
__int128 v6;
int v7;
int v8;
int v9;
VOID(__stdcall *v10)(PVOID);
qword_140C4DAF8 = 0i64;
v2.Buffer = L"Session";
*(_QWORD *)&v2.Length = 1048590i64;
LODWORD(v0) = MiAllocatePool((struct _SLIST_ENTRY *)0x100);
qword_140C4EC50 = v0;
if( !v0 || (v0->SizeOfBitMap = 128, v0->Buffer = &v0[1].SizeOfBitMap, !qword_140C4EC50) )
KeBugCheckEx(0x7Du, qword_140C525D0, qword_140C525C0, HighestPhysicalPage, 0x200ui64);
memset((INT64)qword_140C4EC50->Buffer, 0i64);
qword_140C4DB28 = 0i64;
LOWORD(stru_140C4DB30.Header.Lock) = 0;
stru_140C4DB30.Header.SignalState = 0;
stru_140C4DB30.Header.WaitListHead.Blink = &stru_140C4DB30.Header.WaitListHead;
stru_140C4DB30.Header.WaitListHead.Flink = &stru_140C4DB30.Header.WaitListHead;
stru_140C4DB30.Header.Size = 6;
memset((INT64)&BugCheckParameter3, 0i64);
v5 = 0;
BugCheckParameter3_2 |= 0xCu;
BugCheckParameter3 = 120;
v8 = 512;
v9 = 40;
v6 = MiSessionMapping;
v7 = 983043;
v10 = MiSessionObjectDelete;
result = ObCreateObjectType(&v2, (__int64)&BugCheckParameter3, 0i64, (__int64)&MmSessionObjectType);
if( (int)result < 0 )
KeBugCheckEx(0x1Au, 0x1237ui64, (int)result, (ULONG_PTR)&BugCheckParameter3, 0i64);
return result;
}Referenced by:
MiInitSystem