BOOL WriteFileEx(
HANDLE hFile,
LPCVOID lpBuffer,
DWORD nNumberOfBytesToWrite,
LPOVERLAPPED lpOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
說明:將資料寫入檔案。該函數只能用於非同步I/O操作,即overlapped I/O。 註:WriteFile()可以用於同步和非同步I/O操作。
hFile:file控制代碼,可以使用CreateFile()函數建立,且只有使用FILE_FLAG_OVERLAPPED標識建立的file控制代碼才可以調用此函數。
lpBuffer:指向資料的指標
nNumberOfBytesToWrite:需要寫入的位元組數。
lpOverlapped:OVERLAPPED變數的指標。
lpCompletionRoutine :函數指標。此可以稱為非同步程序呼叫(Asynchronous Procedure Calls,APCs)。函數原型為
VOID CALLBACK FileIOCompletionRoutine(
DWORD dwErrorCode,
DWORD dwNumberOfBytesTransfered,
LPOVERLAPPED lpOverlapped
);
需要注意以下兩點:
1.非同步程序呼叫中只能使用"Ex"版的ReadFile()和WriteFile()。
2.在ReadFileEx()和WriteFileEx()。指定的OVERLAPPED中的hEvent欄位不需要用來放置一個event handle。可以自由運用。一般
可以在此放置有用的指標。
BOOL ReadFileEx(
HANDLE hFile,
LPVOID lpBuffer,
DWORD nNumberOfBytesToRead,
LPOVERLAPPED lpOverlapped,
LPOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
);
說明:讀入資料。參數與上同。