WdipSemMarkInstanceForDeletion
_WDIP_SEM_SCENARIO_INSTANCE_INFO *__stdcall WdipSemMarkInstanceForDeletion(_GUID *ScenarioInstanceId){
_ETHREAD *CurrentThread;
_WDIP_SEM_SCENARIO_INSTANCE_INFO *v2;
_WDIP_SEM_SCENARIO_INSTANCE_INFO *EnabledInstanceTable;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v2 = 0i64;
--CurrentThread->Tcb.KernelApcDisable;
ExAcquirePushLockExclusiveEx((_EX_PUSH_LOCK *)&ExBootDevicesRemovedEvent + 567, 0i64);
if( ScenarioInstanceId )
{
EnabledInstanceTable = WdipSemQueryEnabledInstanceTable(ScenarioInstanceId);
v2 = EnabledInstanceTable;
if( EnabledInstanceTable )
{
if( EnabledInstanceTable[11] )
v2 = 0i64;
else
EnabledInstanceTable[11] = 1;
}
}
ExReleasePushLockEx((ULONG_PTR)&ExBootDevicesRemovedEvent + 4536, 0);
KeLeaveCriticalRegionThread(KeGetCurrentThread());
return v2;
}Referenced by:
WdipSemDisableScenario