IoWMIQueryAllData
INT64 __fastcall IoWMIQueryAllData(VOID *DataBlockObject, UINT64 *InOutBufferSize, VOID *OutBuffer){
unsigned int v6;
int AllData;
int v8;
unsigned int v10;
UINT64 BufferLength;
INT64 a6[2];
INT64 result[10];
memset((INT64)result, 0i64);
LODWORD(a6[0]) = 0;
v6 = *(_DWORD *)InOutBufferSize;
if( !OutBuffer || v6 < 0x48 )
{
OutBuffer = result;
v6 = 72;
}
*((_QWORD *)OutBuffer + 2) = 0i64;
*((_DWORD *)OutBuffer + 3) = 0;
*((_DWORD *)OutBuffer + 11) = 1;
*(_DWORD *)OutBuffer = 48;
LODWORD(BufferLength) = v6;
AllData = WmipQueryAllData(DataBlockObject, 0i64, 0, OutBuffer, BufferLength, (INT64)a6);
if( AllData >= 0 )
{
v8 = *((_DWORD *)OutBuffer + 11);
if( (v8 & 0x100) != 0 )
{
return(unsigned int)-1073741637;
}
else if( (v8 & 0x20) != 0 )
{
AllData = -1073741789;
*(_DWORD *)InOutBufferSize = *((_DWORD *)OutBuffer + 12);
}
else
{
*(_DWORD *)InOutBufferSize = a6[0];
v10 = AllData;
if( OutBuffer == result )
return(unsigned int)-1073741789;
return v10;
}
}
return(unsigned int)AllData;
}Referenced by:
No references.