WINCE流驅動介面函式引數詳解

2021-06-20 04:39:57 字數 2515 閱讀 3054

**:

dword ***_init (dword dwcontext,

lpcvoid lpvbuscontext);

dwcontext:指向登錄檔的指標,說明流驅動的活動鍵的路徑。

lpvbuscontext:作為activedevice的第四個引數傳遞程序對映的指標。

返回值:若此函式執行成功,則返回乙個裝置上下文控制代碼。否則返回0。這個控制代碼會被傳送給***_open、***_powerdown、***_powerup和***_deinit函式。

備註:當驅動被系統載入時,呼叫此函式。

bool ***_deinit(dword hdevicecontext);

hdevicecontext:由***_init建立和返回的裝置上下文控制代碼。

返回值:呼叫成功,返回ture;呼叫失敗,返回false。

備註:當驅動被系統解除安裝時,呼叫此函式。

dword ***_open (dword hdevicecontext,

dword accesscode,

dword sharemode);

hdevicecontext:由***_init建立和返回的裝置上下文控制代碼。

accesscode:表示裝置的訪問許可權。訪問許可權是creatfile傳入的讀寫許可權的組合。

sharemode:表示裝置的檔案共享模式。共享模式是creatfile傳入的共享許可權的組合。

返回值:若此函式執行成功,則返回乙個標識所開啟裝置的裝置上下文控制代碼。否則返回0。這個控制代碼會被傳送給***_read、***_write、***_seek和***_iocontrol。

備註:當應用程式呼叫creatfile()函式時,呼叫此函式。

bool ***_close (dword hopencontext);

hopencontext:由***_open建立和返回的裝置上下文控制代碼。

返回值:呼叫成功,返回ture;呼叫失敗,返回false。

備註:當應用程式

呼叫closehandle()函式時,呼叫此函式。

dword ***_read (dword hopencontext,

lpvoid pbuffer,

dword count);

hopencontext:由***_open建立和返回的裝置上下文控制代碼。

pbuffer:指向由裝置讀取的資料緩衝區的指標。

count:表示由應用程式想要從裝置讀入到緩衝區的位元組數。

返回值:返回0表示已經達到檔案結尾,返回-1表示出錯,執行成功返回實際讀入的位元組數。

備註:當應用程式

呼叫readfile()函式時,呼叫此函式。

dword ***_write (dword hopencontext,

lpvoid pbuffer,

dword count);

hopencontext:由***_open建立和返回的裝置上下文控制代碼。

pbuffer:指向準備向裝置寫入的資料緩衝區的指標。

count:表示應用程式想要寫入到裝置緩衝區的位元組數。

返回值:返回-1表示出錯,執行成功返回實際寫入的位元組數。

備註:當應用程式

呼叫writefile()函式時,呼叫此函式。

dword ***_iocontrol (dword hopencontext,

dword dwcode,

pbyte pbufin,

dword dwlenin,

pbyte pbufout,

dword dwlenout,

pdword pdwactualout);

hopencontext:由***_open建立和返回的裝置上下文控制代碼。

dwcode:表示i/o的控制操作碼。這些編碼一般都是是自定義的,一般都會包含在標頭檔案裡。

pbufin:輸入緩衝區的指標。

dwlenin:要寫入的位元組數。

pbufout:輸出緩衝區指標。

dwlenout:輸出的位元組數。

pdwactualout:實際輸出的位元組數。

返回值:呼叫成功,返回true,否則返回false。.

備註:當應用程式

呼叫deviceiocontrol()函式時,呼叫此函式。

void ***_powerdown (dword hdevicecontext);

hdevicecontext:由***_init建立和返回的裝置上下文控制代碼。

備註:當系統停止對裝置供電,或在呼叫deviceiocontrol()

函式時,i/o命令字為ioctl_power_***時呼叫此函式。

void ***_powerup (dword hdevicecontext);

hdevicecontext:由***_init建立和返回的裝置上下文控制代碼。

備註:當系統恢復對裝置供電,或在呼叫deviceiocontrol()

函式時,i/o命令字為ioctl_power_***時呼叫此函式。

dword ***_seek (dword dwopen, long ldelta, word wtype);

WinCE流驅動載入的控制

前段時間整理了 wince下除錯串列埠的動態復用 基本實現了除錯串列埠與普通功能串列埠之間的動態切換。其中實現的方法有點欠缺,在重新燒錄或者公升級系統後,導致系統無法正常啟動。這算是個bug。該功能加上才幾天,就陸續有好幾個同事碰到。本來想著使用方便的,沒想到反而增添了一些麻煩。這個問題在實現時曾考...

WinCE 流介面驅動中裝置控制代碼的傳輸過程

驅動程式是通過裝置控制代碼來控制裝置的,應用程式要控制裝置,也需要獲得裝置控制代碼,然後使用驅動程式體提供的deviceiocontrol介面來控制裝置。那麼應用程式是如何獲得裝置控制代碼的呢?通常流介面驅動程式會使用兩個結構體,驅動上下文結構體和裝置上下文結構體。裝置控制代碼會儲存在裝置上下文結構...

流驅動函式

1 流驅動固定有是個函式需要實現 init deinit open close read write seek iocontrol powerdown powerup 2 流介面驅動函式介紹 1 dword init lpctstr pcontext,lpcvoid lpvbuscontext pc...