示例#1
0
        protected override IAsyncResult OnBeginOpen(TimeSpan timeout, AsyncCallback callback, object state)
        {
            Task open = null;

            open = Task.Factory.StartNew(x =>
            {
                _handle        = new NAlpc.AlpcPortHandle();
                var attributes = new OBJECT_ATTRIBUTES();
                int status     = NativeMethods.NtCreatePort(out _handle, ref attributes, 100, 100, 50);
                if (status != 0)
                {
                    throw new Win32Exception(status);
                }
                if (callback != null)
                {
                    callback(open);
                }
            }, state);
            open.Wait(timeout);
            return(open);
        }
示例#2
0
 public static extern int NtAcceptConnectPort(out AlpcPortHandle PortHandle, IntPtr PortContext, ref PORT_MESSAGE ConnectionRequest, bool AcceptConnection, IntPtr /*out  PORT_VIEW*/ ServerView, IntPtr /*out   REMOTE_PORT_VIEW*/ ClientView);
示例#3
0
 NtReplyWaitReceivePort(
     AlpcPortHandle PortHandle,
     out IntPtr PortContext,
     ref PORT_MESSAGE ReplyMessage,
     out PORT_MESSAGE ReceiveMessage
     );
示例#4
0
 public static extern int NtListenPort(AlpcPortHandle PortHandle, ref PORT_MESSAGE RequestMessage);
示例#5
0
 NtReplyWaitReplyPort(
     AlpcPortHandle PortHandle,
     out PORT_MESSAGE ReplyMessage
     );
示例#6
0
 NtReplyPort(
     AlpcPortHandle PortHandle,
     ref PORT_MESSAGE ReplyMessage
     );
示例#7
0
 NtRequestWaitReplyPort(
     AlpcPortHandle PortHandle,
     ref PORT_MESSAGE RequestMessage,
     out PORT_MESSAGE ReplyMessage
     );
示例#8
0
 NtRequestPort(
     AlpcPortHandle PortHandle,
     ref PORT_MESSAGE RequestMessage
     );
示例#9
0
 public static extern int NtCompleteConnectPort(AlpcPortHandle PortHandle);