MmUnloadSystemImage
NTSTATUS __stdcall MmUnloadSystemImage(VOID *ImageHandle){
_EJOB *v2;
char v3;
PKINTERRUPT_ROUTINE **v4;
INT64 v5;
PKINTERRUPT_ROUTINE *v6;
_ETHREAD *Lock;
INT64 v9;
_EJOB *v10;
v2 = 0i64;
v3 = 0;
if( PsGetCurrentServerSiloGlobals((_KSPIN_LOCK *)ImageHandle)->IsDownlevelContainer )
{
LODWORD(v9) = HalSystemVectorDispatchEntry(v5, v4, v6);
LODWORD(v10) = PsAttachSiloToCurrentThread(v9);
v2 = v10;
v3 = 1;
}
Lock = MmAcquireLoadLock(v5, (INT8)v4);
MiUnloadSystemImage(ImageHandle, 0xFFFFFFFFui64);
MmReleaseLoadLock(Lock);
if( v3 )
PsDetachSiloFromCurrentThread(v2);
return 0;
}Referenced by:
IopDeleteDriver
IopLoadDriver
MiLoadImportDll
MiSessionUnloadAllImages
NtSetSystemInformation
PnprLoadPluginDriver