ViDdiDispatchWmiRegInfoEx
NTSTATUS __stdcall ViDdiDispatchWmiRegInfoEx(DEVICE_OBJECT *DeviceObject, IRP *Irp){
__int64 v2;
WMIREGINFOW *v4;
unsigned int v5;
unsigned int v6;
__int64 v7;
NTSTATUS result;
v2 = *((_QWORD *)Irp + 23);
if( *(DEVICE_OBJECT **)(v2 + 8) == DeviceObject )
{
v4 = *(WMIREGINFOW **)(v2 + 32);
v5 = *(_DWORD *)(v2 + 24);
v6 = ViDdiBuildWmiRegInfoData(*(unsigned int *)(v2 + 16), 0i64);
v7 = v6;
if( v6 <= v5 )
{
ViDdiBuildWmiRegInfoData(*(unsigned int *)(v2 + 16), v4);
result = 0;
*((_QWORD *)Irp + 7) = v7;
return result;
}
if( v5 >= 4 )
{
v4->BufferSize = v6;
result = -1073741789;
*((_QWORD *)Irp + 7) = 4i64;
return result;
}
}
return -1073741637;
}Referenced by:
ViDdiDispatchWmi