CmClassFilterCallback
UINT8 __stdcall CmClassFilterCallback(
HPNPCTX *hPnpCtx,
WCHAR *CmObjectName,
_CM_OBJECT_TYPE CmObjectType,
VOID *Context){
UINT8 v8;
WCHAR *v9;
__int64(__fastcall *v10)(HPNPCTX *, WCHAR *, _QWORD, _QWORD);
UINT64 Flags;
UINT64 CmRegPropType;
_UNICODE_STRING String2;
_UNICODE_STRING DestinationString;
UINT8 PropertyBuffer[76];
__int16 v17;
CmRegPropType = 0i64;
v8 = 0;
DestinationString = 0i64;
String2 = 0i64;
if( Context )
{
v9 = *(WCHAR **)Context;
if( !*(_QWORD *)Context
|| !*v9
|| RtlInitUnicodeStringEx(&DestinationString, v9) >= 0
&& (LODWORD(Flags) = 0,
LODWORD(CmRegPropType) = 78,
CmGetDeviceRegProp(
hPnpCtx,
CmObjectName,
0i64,
9i64,
(UINT64 *)((char *)&CmRegPropType + 4),
PropertyBuffer,
&CmRegPropType,
Flags) >= 0)
&& HIDWORD(CmRegPropType) == 1
&& (unsigned int)CmRegPropType >= 2
&& (v17 = 0, RtlInitUnicodeStringEx(&String2, (WCHAR *)PropertyBuffer) >= 0)
&& (unsigned __int8)RtlEqualUnicodeString(&DestinationString, &String2, 1u) )
{
v10 = (__int64(__fastcall *)(HPNPCTX *, WCHAR *, _QWORD, _QWORD))*((_QWORD *)Context + 1);
v8 = 1;
if( v10 )
return v10(hPnpCtx, CmObjectName, (unsigned int)CmObjectType, *((_QWORD *)Context + 2));
}
}
return v8;
}Referenced by:
No references.