Fast Copy Routines The UNBUFCPY sample consists of two parts: UNBUFCP1 and UNBUFCP2. The UNBUFCP1 sample shows a fast copy routine that uses I/O completion ports. It is intended to demonstrate using a single thread to complete I/O requests from multiple file handles. Only one thread and one I/O completion port is used. The file handles for the source and destination files are both associated with the same port. The thread starts by posting a number of overlapped reads from the source file. It then waits on the I/O completion port. Whenever a read completes, it immediately turns it into a write to the destination file. Whenever a write completes, it immediately posts the next read from the source file. The UNBUFCP2 sample shows a fast copy routine that uses I/O completion ports. It is intended to demonstrate how to complete I/O in a different thread than the thread that started the I/O. Two threads are used. The first thread posts overlapped reads from the source file. These reads complete to an I/O completion port the second thread is waiting on. The second thread sees the I/O completion and posts an overlapped write to the destination file. The write completes to another I/O completion port that the first thread is waiting on. The first thread sees the I/O completion and posts another overlapped read.