PiSwInit
NTSTATUS __stdcall PiSwInit(){
NTSTATUS result;
OWORD EnlistmentHandle;
DWORD1(EnlistmentHandle) = 0;
RtlInitializeGenericTableAvl(
&PiSwDeviceInstanceTable,
(PRTL_AVL_COMPARE_ROUTINE)PiSwDeviceCompareObjects,
(PRTL_AVL_ALLOCATE_ROUTINE)PiSwAllocateGenericTableEntry,
(PRTL_AVL_FREE_ROUTINE)PiSwFreeGenericTableEntry,
0i64);
RtlInitializeGenericTableAvl(
&PiSwBusRelationsTable,
(PRTL_AVL_COMPARE_ROUTINE)PiSwBusRelationsCompareInstancePath,
(PRTL_AVL_ALLOCATE_ROUTINE)PiSwAllocateGenericTableEntry,
(PRTL_AVL_FREE_ROUTINE)PiSwFreeGenericTableEntry,
0i64);
qword_140C43078 = (__int64)&PiSwGlobalPdoAssociationList;
PiSwGlobalPdoAssociationList = (__int64)&PiSwGlobalPdoAssociationList;
result = ExInitializeResourceLite((INT64)&PiSwLockObj);
if( result >= 0 )
{
LODWORD(EnlistmentHandle) = 3014700;
*((_QWORD *)&EnlistmentHandle + 1) = L"\\Driver\\SoftwareDevice";
return IoCreateDriver(&EnlistmentHandle, (UINT64)PiSwPdoDriverEntry);
}
return result;
}Referenced by:
IopInitializePlugPlayServices