PnpCtxFindNode
__int64 __fastcall PnpCtxFindNode(__int64 a1, const WCHAR *a2, int a3, const UNICODE_STRING **a4){
__int64 v5;
UNICODE_STRING **v7;
UNICODE_STRING *i;
const UNICODE_STRING **v9;
const UNICODE_STRING *j;
UNICODE_STRING String2;
*a4 = 0i64;
v5 = a3;
String2 = 0i64;
RtlInitUnicodeString(&String2, a2, a3);
if( (_DWORD)v5 )
{
v7 = (UNICODE_STRING **)(16 * v5 + a1 + 24);
for( i = *v7; i != (UNICODE_STRING *)v7; i = *(UNICODE_STRING **)&i->Length )
{
if( RtlEqualUnicodeString(i + 1, &String2, 1u) )
{
*a4 = i - 1;
return *a4 == 0i64 ? 0xC0000034 : 0;
}
}
}
else
{
v9 = (const UNICODE_STRING **)(a1 + 8);
for( j = *v9; j != (const UNICODE_STRING *)v9; j = *(const UNICODE_STRING **)&j->Length )
{
if( RtlEqualUnicodeString((UNICODE_STRING *)&j[2], &String2, 1u) )
{
*a4 = j;
return *a4 == 0i64 ? 0xC0000034 : 0;
}
}
}
return *a4 == 0i64 ? 0xC0000034 : 0;
}Referenced by:
PnpCtxRegisterMachineNode