PiCMSetProblem
VOID __fastcall PiCMSetProblem(WCHAR *SourceString, INT64 a2, INT64 a3){
int v3;
int v4;
WCHAR v6;
int v7;
unsigned int v8;
int v9;
struct _UNICODE_STRING DestinationString;
__int128 v11;
__int64 v12;
int v13;
int v14;
v9 = 0;
v13 = 0;
v3 = a3;
v14 = 0;
v4 = a2;
if( (unsigned int)(a3 - 1) <= 1 && (int)CmGetDeviceStatus(PiPnpRtlCtx, SourceString, 0i64, &v14, &v13, &v9, v8) >= 0 )
{
v7 = v13;
if( !v4 || (v14 & 0x400) == 0 || v3 == 2 || v13 == v4 )
{
DestinationString = 0i64;
v12 = 0i64;
v11 = 0i64;
RtlInitUnicodeString(&DestinationString, SourceString, v6);
DWORD1(v11) = 1024;
if( v4 )
{
LODWORD(v11) = 1;
DWORD2(v11) = v4;
}
else
{
LODWORD(v11) = 2;
DWORD2(v11) = v7;
}
ZwPlugPlayControl();
}
}
}Referenced by:
PiCMDeviceAction
PiCMSetDeviceProblem