PiPnpRtlEnumeratorFilterCallback
NTSTATUS __fastcall PiPnpRtlEnumeratorFilterCallback(
HPNPCTX *hPnpCtx,
const WCHAR *ObjectName,
_CM_OBJECT_TYPE ObjectType,
VOID *Context){
char v8;
PCUNICODE_STRING v9;
__int64(__fastcall *v10)(HPNPCTX *, const WCHAR *, _QWORD, _QWORD);
_UNICODE_STRING DestinationString[2];
UINT8 Present;
v8 = 0;
Present = 0;
DestinationString[0] = 0i64;
if( !*((_BYTE *)Context + 8)
|| (LODWORD(v10) = CmIsDevicePresent(hPnpCtx, (WCHAR *)ObjectName, &Present), (int)v10 >= 0) && Present )
{
v9 = *(PCUNICODE_STRING *)Context;
if( !*(_QWORD *)Context
|| v9->Length < 2u
|| !*v9->Buffer
|| (LODWORD(v10) = RtlInitUnicodeStringEx(DestinationString, (WCHAR *)ObjectName), (int)v10 >= 0)
&& (LODWORD(v10) = (unsigned int)RtlPrefixUnicodeString(*(PCUNICODE_STRING *)Context, DestinationString, 1u),
(_BYTE)v10) )
{
v10 = (__int64(__fastcall *)(HPNPCTX *, const WCHAR *, _QWORD, _QWORD))*((_QWORD *)Context + 2);
v8 = 1;
if( v10 )
{
LODWORD(v10) = v10(hPnpCtx, ObjectName, (unsigned int)ObjectType, *((_QWORD *)Context + 3));
v8 = (char)v10;
}
}
}
LOBYTE(v10) = v8;
return(int)v10;
}Referenced by:
No references.