(1)、DWORD XXX_Open ( DWORD hDeviceContext,
DWORD AccessCode,
DWORD ShareMode )
參數:DWORD hDeviceContext,設備驅動的句柄,由XXX_Init函數創建式返回;
DWORD AccessCode,傳給驅動程序使用的地址,這個地址跟讀和寫有關;
DWORD ShareMode,共享模式,
返回值:返回驅動程序引用實例句柄。
描述:這個函數用於打開一個設備驅動程序,當應用程序準備對某個設備進行讀或寫操作時,系統必須先執行CreateFile()這個函數用於打開這個設備,這個函數執行後才能執行讀和寫操作;
(2)、BOOL XXX_Close(DWORD hOpenContext)
參數:DWORD hOpenContext,設備驅動的句柄,由XXX_Open創建。
返回值:調用成功返回TRUE,失敗返回FALSE
描述:這個函數用於關閉一個驅動程序的引用實例,應用程序通過CloseHandle()函數來調用這個函數,當執行完這個函數後,hOpenContext將不再有效;
(3)、DWORD XXX_Read( DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count)
參數:DWORD hOpenContext,由CreateFile()函數返回的句柄;
LPVOID pBuffer,一個緩衝區地址,用於從驅動讀數據;
DWORD Count,需要讀緩衝區的長度
返回值:實際讀緩衝區的長度
描述:當一個流式接口驅動程序已經打開後,可以使用ReadFile()函數對這個設備進行讀操作。ReadFile()中的hFile參數對應設備的引用實例句柄hOpenContext,二參數lpBuffer將傳給pBuffer,用於表示要讀緩衝區的地址,參數nNumberOfByteToRead將傳給Count,表示讀取緩衝區的長度。
(4)、DWORD XXX_Write( DWORD hOpenContext,
LPVOID pBuffer,
DWORD Count)
參數:DWORD hOpenContext,由CreateFile()函數返回的句柄;
LPVOID pBuffer,一個緩衝區地址,用於從驅動寫數據;
DWORD Count,需要寫緩衝區的長度
返回值:實際寫緩衝區的長度
描述:當一個流式接口驅動程序已經打開後,可以使用WriteFile()函數對這個設備進行寫操作。
(5)、BOOL XXX_IOControl(DWORD hOpenContext,
WORD dwCode,
PBYTE pBufIn,
DWORD dwLenIn,
PBYTE pBufOut,
DWORD dwLenOut,
PDWORD pdwActualOut)
參數:DWORD hOpenContext,由CreateFile()函數返回的句柄;
WORD dwCode,用於描述這次IOControl操作的語義,由用戶自己定義;
PBYTE pBufIn,緩衝區指針指向需要傳送給驅動程序使用的數據;
DWORD dwLenIn,要傳送給驅動程序使用數據的長度;
PBYTE pBufOu,緩衝區指針指向驅動程序傳給應用程序使用的數據;
DWORD dwLenOut,要傳送給應用程序使用數據的長度;
PDWORD pdwActualOut,返回實際處理數據的長度;
返回值:調用成功返回TRUE,失敗返回FALSE
描述:這個函數通常用於向設備發送一個命令,應用程序使用DeviceIOControl函數來通知操作系統調用這個函數,通過參數dwCode來通知驅動程序要執行的操作。這個函數擴展了流式接口驅動程序的功能。
(6)、DWORD XXX_Init(DWORD dwContext)
參數:DWORD dwContext,指向字符串的指針,通常這個參數都爲一個流式接口驅動在註冊表內的設置。
返回值:如果調用成功返回一個驅動程序的句柄;
描述:當用戶使用一個設備的時候,設備管理器調用這個函數來對設備進行初始化。這個函數並不是由應用程序調用的,而是通過設備管理器提供的ActiveDeviceEx()來調用。函數執行成功後返回一個設備的句柄。