WdipSemEnableAllProviders
VOID __stdcall WdipSemEnableAllProviders(){
__int64 v0;
unsigned __int16 v1;
unsigned __int16 i;
__int64 v3;
__int64 v4;
UINT64 EnableProperty;
UINT64 ControlCode;
v0 = 0i64;
v1 = _InterlockedExchange(&WdipDiagLoggerId, WdipDiagLoggerId);
for( i = _InterlockedExchange(&WdipContextLoggerId, WdipContextLoggerId);
(unsigned int)v0 < (unsigned int)OldNumProviders;
v0 = (unsigned int)(v0 + 1) )
{
v3 = *((_QWORD *)&ExBootDevicesRemovedEvent + v0 + 568);
v4 = *(_QWORD *)v3 - *(_QWORD *)&WDI_SEM_PROVIDER.Data1;
if( *(_QWORD *)v3 == *(_QWORD *)&WDI_SEM_PROVIDER.Data1 )
v4 = *(_QWORD *)(v3 + 8) - *(_QWORD *)WDI_SEM_PROVIDER.Data4;
if( v4 && *(_DWORD *)(v3 + 40) && *(_BYTE *)(v3 + 36) )
{
LODWORD(ControlCode) = 1;
LODWORD(EnableProperty) = *(_DWORD *)(v3 + 32);
if( WdipSemEnableDisableTrace(
v1,
*((_GUID **)&ExBootDevicesRemovedEvent + v0 + 568),
*(_BYTE *)(v3 + 16),
*(_QWORD *)(v3 + 24),
EnableProperty,
ControlCode) < 0 )
{
*(_OWORD *)(v3 + 16) = 0i64;
*(_OWORD *)(v3 + 32) = 0i64;
*(_OWORD *)(v3 + 48) = 0i64;
*(_OWORD *)(v3 + 64) = 0i64;
}
else
{
*(_BYTE *)(v3 + 37) = 1;
if( *(_BYTE *)(v3 + 68) )
{
LODWORD(ControlCode) = 1;
LODWORD(EnableProperty) = *(_DWORD *)(v3 + 64);
if( WdipSemEnableDisableTrace(
i,
(_GUID *)v3,
*(_BYTE *)(v3 + 48),
*(_QWORD *)(v3 + 56),
EnableProperty,
ControlCode) < 0 )
{
*(_OWORD *)(v3 + 48) = 0i64;
*(_OWORD *)(v3 + 64) = 0i64;
}
else
{
*(_BYTE *)(v3 + 69) = 1;
}
}
}
}
}
}Referenced by:
WdipSemLoadScenarioTable