PipUpdateSetupInProgress
INT64 __stdcall PipUpdateSetupInProgress(HANDLE KeyHandle){
int v2;
int v3;
int v4;
INT64 result;
PVOID P;
P = 0i64;
v2 = 0;
v3 = 0;
v4 = 0;
if( IopGetRegistryValue(KeyHandle, (PWCHAR)L"SystemSetupInProgress", 0i64, (KEY_VALUE_FULL_INFORMATION **)&P) >= 0 )
{
if( *((_DWORD *)P + 1) == 4 && *((_DWORD *)P + 3) == 4 )
v2 = *(_DWORD *)((char *)P + *((unsigned int *)P + 2));
ExFreePoolWithTag(P, 0);
}
LODWORD(result) = IopGetRegistryValue(KeyHandle, (PWCHAR)L"OOBEInProgress", 0i64, (KEY_VALUE_FULL_INFORMATION **)&P);
if( (int)result >= 0 )
{
if( *((_DWORD *)P + 1) == 4 && *((_DWORD *)P + 3) == 4 )
v3 = *(_DWORD *)((char *)P + *((unsigned int *)P + 2));
ExFreePoolWithTag(P, 0);
}
if( v2 )
goto LABEL_15;
if( !v3 )
goto LABEL_13;
LODWORD(result) = IopGetRegistryValue(
KeyHandle,
(PWCHAR)L"PnpSetupInProgress",
0i64,
(KEY_VALUE_FULL_INFORMATION **)&P);
if( (int)result < 0 )
goto LABEL_13;
if( *((_DWORD *)P + 1) == 4 && *((_DWORD *)P + 3) == 4 )
v4 = *(_DWORD *)((char *)P + *((unsigned int *)P + 2));
ExFreePoolWithTag(P, 0);
if( v4 )
LABEL_15:
LOBYTE(result) = 1;
else
LABEL_13:
LOBYTE(result) = 0;
PnpSetupOOBEInProgress = v3 != 0;
PnpSetupInProgress = result;
return result;
}Referenced by:
IopInitializePlugPlayServices
PipUpdateSetupInProgressNotify