NtRequestPort

NTSTATUS __stdcall NtRequestPort(PVOID PortHandle, _PORT_MESSAGE *RequestMessage){
  int v4; 
  _ETHREAD *CurrentThread; 
  _ALPC_DISPATCH_CONTEXT result; 
  PVOID Object; 
  memset((INT64)&result, 0i64);
  Object = 0i64;
  v4 = ObReferenceObjectByHandle(
         PortHandle,
         1u,
         AlpcPortObjectType,
         *((_BYTE *)KeGetCurrentThread() + 562),
         &Object,
         0i64);
  if( v4 >= 0 )
  {
    result.PortObject = (_ALPC_PORT *)Object;
    result.Flags = 0x10000;
    CurrentThread = (_ETHREAD *)KeGetCurrentThread();
    --*((_WORD *)CurrentThread + 242);
    v4 = AlpcpSendMessage(&result, RequestMessage, 0i64, *((_BYTE *)KeGetCurrentThread() + 562));
    KeLeaveCriticalRegionThread((__int64)KeGetCurrentThread());
    HalPutDmaAdapter((PADAPTER_OBJECT)Object);
  }
  return v4;
}

Referenced by:

No references.