?? ch375dll.h
字號:
ULONG WINAPI CH375DriverCommand( // 直接傳遞命令給驅(qū)動程序,出錯則返回0,否則返回數(shù)據(jù)長度
ULONG iIndex, // 指定CH375設(shè)備序號,V1.6以上DLL也可以是設(shè)備打開后的句柄
mPWIN32_COMMAND ioCommand ); // 命令結(jié)構(gòu)的指針
// 該程序在調(diào)用后返回數(shù)據(jù)長度,并且仍然返回命令結(jié)構(gòu),如果是讀操作,則數(shù)據(jù)返回在命令結(jié)構(gòu)中,
// 返回的數(shù)據(jù)長度在操作失敗時為0,操作成功時為整個命令結(jié)構(gòu)的長度,例如讀一個字節(jié),則返回mWIN32_COMMAND_HEAD+1,
// 命令結(jié)構(gòu)在調(diào)用前,分別提供:管道號或者命令功能代碼,存取數(shù)據(jù)的長度(可選),數(shù)據(jù)(可選)
// 命令結(jié)構(gòu)在調(diào)用后,分別返回:操作狀態(tài)代碼,后續(xù)數(shù)據(jù)的長度(可選),
// 操作狀態(tài)代碼是由WINDOWS定義的代碼,可以參考NTSTATUS.H,
// 后續(xù)數(shù)據(jù)的長度是指讀操作返回的數(shù)據(jù)長度,數(shù)據(jù)存放在隨后的緩沖區(qū)中,對于寫操作一般為0
ULONG WINAPI CH375GetDrvVersion( ); // 獲得驅(qū)動程序版本號,返回版本號,出錯則返回0
BOOL WINAPI CH375ResetDevice( // 復(fù)位USB設(shè)備
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375GetDeviceDescr( // 讀取設(shè)備描述符
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區(qū),用于保存描述符
PULONG ioLength ); // 指向長度單元,輸入時為準(zhǔn)備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH375GetConfigDescr( // 讀取配置描述符
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區(qū),用于保存描述符
PULONG ioLength ); // 指向長度單元,輸入時為準(zhǔn)備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH375SetIntRoutine( // 設(shè)定中斷服務(wù)程序
ULONG iIndex, // 指定CH375設(shè)備序號
mPCH375_INT_ROUTINE iIntRoutine ); // 指定中斷服務(wù)回調(diào)程序,為NULL則取消中斷服務(wù),否則在中斷時調(diào)用該程序
BOOL WINAPI CH375ReadInter( // 讀取中斷數(shù)據(jù)
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區(qū),用于保存讀取的中斷數(shù)據(jù)
PULONG ioLength ); // 指向長度單元,輸入時為準(zhǔn)備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH375AbortInter( // 放棄中斷數(shù)據(jù)讀操作
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375ReadData( // 讀取數(shù)據(jù)塊
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID oBuffer, // 指向一個足夠大的緩沖區(qū),用于保存讀取的數(shù)據(jù)
PULONG ioLength ); // 指向長度單元,輸入時為準(zhǔn)備讀取的長度,返回后為實際讀取的長度
BOOL WINAPI CH375AbortRead( // 放棄數(shù)據(jù)塊讀操作
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375WriteData( // 寫出數(shù)據(jù)塊
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID iBuffer, // 指向一個緩沖區(qū),放置準(zhǔn)備寫出的數(shù)據(jù)
PULONG ioLength ); // 指向長度單元,輸入時為準(zhǔn)備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH375AbortWrite( // 放棄數(shù)據(jù)塊寫操作
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375WriteRead( // 先寫出標(biāo)準(zhǔn)的數(shù)據(jù)塊(命令),再讀取標(biāo)準(zhǔn)的數(shù)據(jù)塊(應(yīng)答)
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID iBuffer, // 指向一個緩沖區(qū),放置準(zhǔn)備寫出的數(shù)據(jù),長度不大于mCH375_PACKET_LENGTH
PVOID oBuffer, // 指向一個足夠大的緩沖區(qū),長度不小于mCH375_PACKET_LENGTH,用于保存讀取的數(shù)據(jù)
PULONG ioLength ); // 指向長度單元,不大于mCH375_PACKET_LENGTH,輸入時為準(zhǔn)備寫出的長度,返回后為實際讀取的長度
BOOL WINAPI CH375GetStatus( // 通過CH375直接輸入數(shù)據(jù)和狀態(tài)
ULONG iIndex, // 指定CH375設(shè)備序號
PULONG iStatus ); // 指向一個雙字單元,用于保存狀態(tài)數(shù)據(jù)
// 位7-位0對應(yīng)CH375的D7-D0引腳,位9對應(yīng)CH375的RXD#引腳,位10對應(yīng)CH375的REQ#引腳
BOOL WINAPI CH375SetTimeout( // 設(shè)置USB數(shù)據(jù)讀寫的超時
ULONG iIndex, // 指定CH375設(shè)備序號
ULONG iWriteTimeout, // 指定USB寫出數(shù)據(jù)塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認(rèn)值)
ULONG iReadTimeout ); // 指定USB讀取數(shù)據(jù)塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認(rèn)值)
BOOL WINAPI CH375WriteAuxData( // 寫出輔助數(shù)據(jù)
ULONG iIndex, // 指定CH375設(shè)備序號
PVOID iBuffer, // 指向一個緩沖區(qū),放置準(zhǔn)備寫出的數(shù)據(jù)
PULONG ioLength ); // 指向長度單元,輸入時為準(zhǔn)備寫出的長度,返回后為實際寫出的長度
BOOL WINAPI CH375SetExclusive( // 設(shè)置獨占使用當(dāng)前CH375設(shè)備
ULONG iIndex, // 指定CH375設(shè)備序號
ULONG iExclusive ); // 為0則設(shè)備可以共享使用,非0則獨占使用
ULONG WINAPI CH375GetUsbID( // 獲取USB設(shè)備ID,返回數(shù)據(jù)中,低16位為廠商ID,高16位為產(chǎn)品ID,錯誤時返回全0(無效ID)
ULONG iIndex ); // 指定CH375設(shè)備序號
PVOID WINAPI CH375GetDeviceName( // 返回指向CH375設(shè)備名稱的緩沖區(qū),出錯則返回NULL
ULONG iIndex ); // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備
BOOL WINAPI CH375SetBufUpload( // 設(shè)定內(nèi)部緩沖上傳模式
ULONG iIndex, // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備
ULONG iEnableOrClear ); // 為0則禁止內(nèi)部緩沖上傳模式,使用直接上傳,非0則啟用內(nèi)部緩沖上傳模式并清除緩沖區(qū)中的已有數(shù)據(jù)
// 如果啟用內(nèi)部緩沖上傳模式,那么CH375驅(qū)動程序創(chuàng)建線程自動接收USB上傳數(shù)據(jù)到內(nèi)部緩沖區(qū),同時清除緩沖區(qū)中的已有數(shù)據(jù),當(dāng)應(yīng)用程序調(diào)用CH375ReadData后將立即返回緩沖區(qū)中的已有數(shù)據(jù)
LONG WINAPI CH375QueryBufUpload( // 查詢內(nèi)部上傳緩沖區(qū)中的已有數(shù)據(jù)包個數(shù),成功返回數(shù)據(jù)包個數(shù),出錯返回-1
ULONG iIndex ); // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備
BOOL WINAPI CH375SetBufDownload( // 設(shè)定內(nèi)部緩沖下傳模式
ULONG iIndex, // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備
ULONG iEnableOrClear ); // 為0則禁止內(nèi)部緩沖下傳模式,使用直接下傳,非0則啟用內(nèi)部緩沖下傳模式并清除緩沖區(qū)中的已有數(shù)據(jù)
// 如果啟用內(nèi)部緩沖下傳模式,那么當(dāng)應(yīng)用程序調(diào)用CH375WriteData后將僅僅是將USB下傳數(shù)據(jù)放到內(nèi)部緩沖區(qū)并立即返回,而由CH375驅(qū)動程序創(chuàng)建的線程自動發(fā)送直到完畢
LONG WINAPI CH375QueryBufDownload( // 查詢內(nèi)部下傳緩沖區(qū)中的剩余數(shù)據(jù)包個數(shù)(尚未發(fā)送),成功返回數(shù)據(jù)包個數(shù),出錯返回-1
ULONG iIndex ); // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備
BOOL WINAPI CH375ResetInter( // 復(fù)位中斷數(shù)據(jù)讀操作
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375ResetAux( // 復(fù)位輔助數(shù)據(jù)寫操作
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375ResetRead( // 復(fù)位數(shù)據(jù)塊讀操作
ULONG iIndex ); // 指定CH375設(shè)備序號
BOOL WINAPI CH375ResetWrite( // 復(fù)位數(shù)據(jù)塊寫操作
ULONG iIndex ); // 指定CH375設(shè)備序號
typedef VOID ( CALLBACK * mPCH375_NOTIFY_ROUTINE ) ( // 設(shè)備事件通知回調(diào)程序
ULONG iEventStatus ); // 設(shè)備事件和當(dāng)前狀態(tài)(在下行定義): 0=設(shè)備拔出事件, 3=設(shè)備插入事件
#define CH375_DEVICE_ARRIVAL 3 // 設(shè)備插入事件,已經(jīng)插入
#define CH375_DEVICE_REMOVE_PEND 1 // 設(shè)備將要拔出
#define CH375_DEVICE_REMOVE 0 // 設(shè)備拔出事件,已經(jīng)拔出
BOOL WINAPI CH375SetDeviceNotify( // 設(shè)定設(shè)備事件通知程序
ULONG iIndex, // 指定CH375設(shè)備序號,0對應(yīng)第一個設(shè)備
PCHAR iDeviceID, // 可選參數(shù),指向字符串,指定被監(jiān)控的設(shè)備的ID,字符串以\0終止
mPCH375_NOTIFY_ROUTINE iNotifyRoutine ); // 指定設(shè)備事件回調(diào)程序,為NULL則取消事件通知,否則在檢測到事件時調(diào)用該程序
BOOL WINAPI CH375SetTimeoutEx( // 設(shè)置USB數(shù)據(jù)讀寫的超時
ULONG iIndex, // 指定CH375設(shè)備序號
ULONG iWriteTimeout, // 指定USB寫出數(shù)據(jù)塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認(rèn)值)
ULONG iReadTimeout, // 指定USB讀取數(shù)據(jù)塊的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認(rèn)值)
ULONG iAuxTimeout, // 指定USB輔助下傳數(shù)據(jù)的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認(rèn)值)
ULONG iInterTimeout ); // 指定USB中斷上傳數(shù)據(jù)的超時時間,以毫秒mS為單位,0xFFFFFFFF指定不超時(默認(rèn)值)
#ifdef __cplusplus
}
#endif
#endif // _CH375_DLL_H
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -