NtQueryInformationPort

INT64 __fastcall NtQueryInformationPort(HANDLE Handle, INT64 a2, VOID *a3, UINT64 a4, INT64 a5){
  KPROCESSOR_MODE v6; 
  INT64 v7; 
  NTSTATUS v8; 
  PVOID Object; 
  v6 = *((_BYTE *)KeGetCurrentThread() + 562);
  if( v6 )
  {
    ProbeForWrite(a3, (unsigned int)a4, 4ui64);
    if( a5 )
    {
      v7 = 0x7FFFFFFF0000i64;
      if( (unsigned __int64)a5 < 0x7FFFFFFF0000i64 )
        v7 = a5;
      *(_DWORD *)v7 = *(_DWORD *)v7;
    }
  }
  if( Handle )
  {
    Object = 0i64;
    v8 = ObReferenceObjectByHandle(Handle, 0x20000u, AlpcPortObjectType, v6, &Object, 0i64);
    if( v8 >= 0 )
    {
      if( a5 )
        *(_DWORD *)a5 = 0;
      HalPutDmaAdapter((PADAPTER_OBJECT)Object);
    }
  }
  else
  {
    return(unsigned int)-1073741821;
  }
  return(unsigned int)v8;
}

Referenced by:

No references.