KsepDbCacheReadDeviceInternal
NTSTATUS __fastcall KsepDbCacheReadDeviceInternal(VOID *hSDB, tagSDBBMACHINEINFO *a2, WCHAR *a3, VOID *a4){
unsigned int DatabaseMatch;
NTSTATUS result;
_DB *v8;
unsigned int i;
unsigned int v10;
unsigned int j;
unsigned int v12;
UINT64 ptiWhich;
_DB *ppdb;
INT64 a3a[2];
__int128 v16;
__int64 v17;
LODWORD(ptiWhich) = 0;
ppdb = 0i64;
*(_OWORD *)a3a = 0i64;
v17 = 0i64;
v16 = 0i64;
DatabaseMatch = SdbGetDatabaseMatchEx(hSDB, 1i64, a3, a4, 0i64, 0i64, a2);
if( !DatabaseMatch || !SdbTagRefToTagID(hSDB, DatabaseMatch, &ppdb, &ptiWhich) )
return -1073741275;
v8 = ppdb;
for( i = SdbFindFirstTag(ppdb, (unsigned int)ptiWhich, 0x7013u); ; i = SdbFindNextTag(
v8,
(unsigned int)ptiWhich,
v10) )
{
v10 = i;
if( !i )
break;
result = KsepDbReadKFlag(v8, i, (INT64)a3a);
if( result < 0 )
return result;
result = KsepCacheDeviceInsertData((__int64)a4, (wchar_t *)a3a[0], (const VOID *)v16, a3a[1], HIDWORD(a3a[1]));
if( result < 0 )
return result;
}
for( j = SdbFindFirstTag(v8, (unsigned int)ptiWhich, 0x7028u); ; j = SdbFindNextTag(v8, (unsigned int)ptiWhich, v12) )
{
v12 = j;
if( !j )
break;
result = KsepDbReadKData(v8, j, (INT64)a3a);
if( result < 0 )
return result;
result = KsepCacheDeviceInsertData((__int64)a4, (wchar_t *)a3a[0], (const VOID *)v16, a3a[1], HIDWORD(a3a[1]));
if( result < 0 )
return result;
}
return 0;
}Referenced by:
KsepDbCacheReadDevice