private static extern bool GetQueuedCompletionStatus(SafeIOCompletionPortHandle hIOCP, out uint numBytesTransferred, out IntPtr cb, out IntPtr state, uint milliseconds);
public IOCompletionPort(int maxConcurrency) { this.m_hIOCP = IOCompletionPort.CreateIoCompletionPort(maxConcurrency); }
private static extern SafeIOCompletionPortHandle CreateIoCompletionPort(SafeFileHandle hFile, SafeIOCompletionPortHandle hExistingIOCP, UIntPtr CompKey, uint NumConcurrentThreads);
private static extern bool PostQueuedCompletionStatus(SafeIOCompletionPortHandle hIOCP, uint numBytesTransferred, IntPtr cb, IntPtr state);