ViDdiDispatchWmiRegInfoEx
NTSTATUS __stdcall ViDdiDispatchWmiRegInfoEx(_DEVICE_OBJECT *DeviceObject, _IRP *Irp){
_IO_STACK_LOCATION *CurrentStackLocation;
WMIREGINFOW *v4;
unsigned int v5;
unsigned int v6;
unsigned __int64 v7;
NTSTATUS result;
CurrentStackLocation = Irp->Tail.CurrentStackLocation;
if( (_DEVICE_OBJECT *)CurrentStackLocation->Parameters.SecurityContext == DeviceObject )
{
v4 = *(WMIREGINFOW **)&CurrentStackLocation->Parameters.EaLength;
v5 = *(_DWORD *)&CurrentStackLocation->Parameters.FileAttributes;
v6 = ViDdiBuildWmiRegInfoData(CurrentStackLocation->Parameters.Options, 0i64);
v7 = v6;
if( v6 <= v5 )
{
ViDdiBuildWmiRegInfoData(CurrentStackLocation->Parameters.Options, v4);
result = 0;
Irp->IoStatus.Information = v7;
return result;
}
if( v5 >= 4 )
{
v4->BufferSize = v6;
result = -1073741789;
Irp->IoStatus.Information = 4i64;
return result;
}
}
return -1073741637;
}Referenced by:
ViDdiDispatchWmi