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