DrvDbGetObjectSubKeyList
NTSTATUS __stdcall DrvDbGetObjectSubKeyList(
INT64 a1,
VOID *a2,
INT64 a3,
INT64 a4,
_WORD *a5,
UINT64 a6,
UINT64 *a7,
INT64 a8){
int v12;
int v13;
unsigned int v14;
_BYTE v16[548];
int v17;
*(_DWORD *)a7 = 0;
if( a5 && (_DWORD)a6 )
*a5 = 0;
memset(&v16[4], 0i64, 0x204u);
*(_DWORD *)v16 = a8;
*(_QWORD *)&v16[520] = a3;
*(_QWORD *)&v16[528] = a4;
*(_QWORD *)&v16[536] = a5;
*(_DWORD *)&v16[544] = a6;
v17 = 0;
v12 = PnpCtxRegEnumKeyWithCallback(a1, a2, (INT64)DrvDbGetObjectSubKeyCallback, (INT64)v16);
if( v12 >= 0 )
{
v13 = v17;
*(_DWORD *)a7 = v17;
if( v13 )
{
v14 = v13 + 1;
*(_DWORD *)a7 = v14;
if( a5 && v14 <= (unsigned int)a6 )
a5[v14 - 1] = 0;
else
return -1073741789;
}
else
{
return 0;
}
}
return v12;
}Referenced by:
DrvDbGetObjectList