PiDmGetObjectListCallback
NTSTATUS __stdcall PiDmGetObjectListCallback(PI_DM_OBJECT *Object, VOID *Context, UINT8 *StopEnumeration){
__int64(__fastcall *v5)(PI_DM_OBJECT *, _QWORD, char *);
NTSTATUS v6;
__int64 v8;
unsigned int v9;
unsigned int v10;
UINT64 dwFlags;
char v12;
*StopEnumeration = 0;
v5 = *(__int64(__fastcall **)(PI_DM_OBJECT *, _QWORD, char *))Context;
v6 = 0;
v12 = 0;
if( !v5 || (v6 = v5(Object, *((_QWORD *)Context + 1), &v12), v6 >= 0) && v12 )
{
v8 = -1i64;
do
++v8;
while( *(_WORD *)(*((_QWORD *)Object + 2) + 2 * v8) );
v9 = *((_DWORD *)Context + 6);
v10 = v8 + 1;
*((_DWORD *)Context + 7) += v10;
if( v9 > v10 )
{
LODWORD(dwFlags) = 2304;
RtlStringCchCopyExW(*((WCHAR **)Context + 2), v9, *((WCHAR **)Object + 2), 0i64, 0i64, dwFlags);
*((_QWORD *)Context + 2) += 2i64 * v10;
*((_DWORD *)Context + 6) -= v10;
}
}
return v6;
}Referenced by:
No references.