Can you summarize the following document?
        
  POSIX提供下述API函式:

  Windows提供多種非同步I/O(也稱重疊I/O)方式:

  I/O裝置在作業系統核心中表示為核心物件,因此具有可等待(waitable)核心物件狀態。例如:檔案控制代碼,執行緒控制代碼等等。對於檔案核心物件,當一個非同步I/O完成後,該檔案控制代碼被置為觸發態。使用這種方式獲取非同步I/O完成的通知,缺點是如果在一個檔案核心物件上同時有多個非同步I/O操作,只通過檔案控制代碼的觸發無法辨識哪個非同步I/O操作完成了。  例子:

  也可以使用Windows API函式GetOverlappedResult直接阻塞/非阻塞等待指定的非同步I/O操作是否完成。該函式檢查OVERLAPPED結構中的Internal成員的值是否為STATUS_PENDING來判斷非同步I/O是否完成。

  在非同步I/O操作的read/write函式呼叫中給出的OVERLAPPED型別的引數中,可以指定一個核心事件物件。這個非同步I/O操作完成時,這個核心事件物件會被觸發。從而,等待在這個事件物件上的程式就會知道這個非同步I/O操作完成。  例子:

  非同步可喚醒I/O操作通過ReadFileEx/WriteFileEx函式指出完成過程回撥函式。回撥函式在該執行緒的可喚醒等待(alertable wait)中被執行。

  使用CreateIoCompletionPort函式建立一個完成埠。然後把檔案控制代碼繫結到這個完成埠(通過CreateIoCompletionPort函式)。這個檔案控制代碼上的非同步I/O操作完成時,會自動向這個完成完成埠發通知。執行緒通過GetQueuedCompletionStatus函式等待這個完成埠上的完成通知,然後從GetQueuedCompletionStatus的呼叫返回處恢復執行緒執行。

  使用CreateThreadpoolIo函式建立一個I/O完成物件,繫結了要執行非同步I/O操作的檔案控制代碼與待執行的回撥函式。通過StartThreadpoolIo函式開始I/O完成物件的工作。每當繫結的檔案控制代碼上的非同步I/O操作完成,自動呼叫執行緒池上的執行緒執行指定的回撥函式。  例子:
非同步I/O是計算機作業系統對輸入輸出的一種處理方式:發起I/O請求的執行緒不等I/O操作完成,就繼續執行隨後的程式碼,I/O結果用其他方式通知發起I/O請求的程式。與非同步I/O相對的是更為常見的“同步(阻塞)I/O”:發起I/O請求的執行緒不從正在呼叫的I/O操作函式返回(即被阻塞),直至I/O操作完成。