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); }
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);
NtReplyWaitReceivePort( AlpcPortHandle PortHandle, out IntPtr PortContext, ref PORT_MESSAGE ReplyMessage, out PORT_MESSAGE ReceiveMessage );
public static extern int NtListenPort(AlpcPortHandle PortHandle, ref PORT_MESSAGE RequestMessage);
NtReplyWaitReplyPort( AlpcPortHandle PortHandle, out PORT_MESSAGE ReplyMessage );
NtReplyPort( AlpcPortHandle PortHandle, ref PORT_MESSAGE ReplyMessage );
NtRequestWaitReplyPort( AlpcPortHandle PortHandle, ref PORT_MESSAGE RequestMessage, out PORT_MESSAGE ReplyMessage );
NtRequestPort( AlpcPortHandle PortHandle, ref PORT_MESSAGE RequestMessage );
public static extern int NtCompleteConnectPort(AlpcPortHandle PortHandle);