private AlpcMessage Send(AlpcMessage msg)
        {
            NtWaitTimeout timeout = TimeoutMs.HasValue
                ? NtWaitTimeout.FromMilliseconds(TimeoutMs.Value) : NtWaitTimeout.Infinite;
            var recv_message = CreateReceiveMessage();

            Port.SendReceive(Flags, msg, SendAttributes, recv_message, recv_message != null ? ReceiveAttributes : null, timeout);
            return(recv_message);
        }
Esempio n. 2
0
        private void ClearAttributes(AlpcMessage msg, AlpcReceiveMessageAttributes attributes)
        {
            AlpcMessageAttributeFlags flags = attributes.ValidAttributes & (AlpcMessageAttributeFlags.View | AlpcMessageAttributeFlags.Handle);

            if (!msg.ContinuationRequired || flags == 0)
            {
                return;
            }

            _client.Send(AlpcMessageFlags.None, msg, attributes.ToContinuationAttributes(flags), NtWaitTimeout.Infinite);
        }
Esempio n. 3
0
 internal static void DumpBuffer(bool transport, string title, AlpcMessage message)
 {
     if (!CheckSwitch(transport))
     {
         return;
     }
     using (var buffer = message.ToSafeBuffer())
     {
         DumpBuffer(transport, title, buffer.ToArray());
     }
 }
Esempio n. 4
0
 public AlpcMessageViewModel(AlpcMessage message, int index)
 {
     Message = message;
     Index   = index;
 }
Esempio n. 5
0
 internal static SafeAlpcPortMessageBuffer GetMessageBuffer(this DisposableList list, AlpcMessage message)
 {
     if (message == null)
     {
         return(SafeAlpcPortMessageBuffer.Null);
     }
     return(list.AddResource(message.ToSafeBuffer()));
 }