?? readme-chn.txt
字號:
---------------------------------------------------
宏狗套裝 Win32 下調(diào)用靜態(tài)庫使用說明
---------------------------------------------------
版權(quán)所有 (c) 2004 賽孚耐(北京)信息技術(shù)有限公司
================
已通過的測試環(huán)境
================
Microsoft Visual C++ 6.0
==============================
Windows32 下調(diào)用靜態(tài)庫編程說明
==============================
在 WIN32 環(huán)境下調(diào)用宏狗靜態(tài)連接庫可以將函數(shù)接口頭文件RCGrandDogW32.h和靜態(tài)庫RCGrandDogW32.lib包含在
工程中,具體使用方法參見例子程序。
===============
宏狗靜態(tài)庫示例
===============
靜態(tài)庫定義如下函數(shù),并輸出給開發(fā)商的程序。
1. HRESULT rc_OpenDog(ULONG ulFlag, CHAR * pszProductName,ULONG * pDogHandle)
輸入?yún)?shù): ulFlag 打開狗的標(biāo)志
pszProductName 硬件狗對應(yīng)的產(chǎn)品名
輸出參數(shù): pDogHandle。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
打開硬件狗。只有與本OBJ的系列號對應(yīng)并且產(chǎn)品名一致的狗才會打開。
ulFlag可以為以下幾個標(biāo)志:
OpenFirstInLocal(1) 打開本地第一只硬件狗。
OpenNextInLocal(2) 打開下一只硬件狗。在使用此標(biāo)志前,應(yīng)該先使OpenFirstInLocal打開硬件狗。
OpenInLan(3) 只打開局域網(wǎng)中的硬件狗。
OpenLocalFirst(4) 優(yōu)先打開本地硬件狗。
OpenLanFirst(5) 優(yōu)先打開局域網(wǎng)中的硬件狗。
pszProductName為產(chǎn)品名,產(chǎn)品名是以NULL結(jié)尾的字符串,最多為15個非零字符。
2. HRESULT rc_GetDogInfo(ULONG DogHandle, RC_HARDWARE_INFO * pHardwareInfo, ULONG * pulLen)
輸入?yún)?shù): DogHandle, 硬件狗句柄
輸出參數(shù): pHardwareInfo 存儲硬件狗信息的結(jié)構(gòu)內(nèi)存地址
輸入/輸出參數(shù):pulLen 輸入時為硬件狗信息結(jié)構(gòu)的大小,輸出時為返回數(shù)據(jù)的大小
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
獲取硬件狗信息,硬件狗信息包括系列號、流水號、狗類型,狗型號。
3. HRESULT rc_GetProductCurrentNo(ULONG DogHandle, ULONG * pulProductCurrentNo)
輸入?yún)?shù): DogHandle, 硬件狗句柄
輸出參數(shù): pulProductCurrentNo 存儲硬件狗產(chǎn)品流水號的內(nèi)存地址
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
獲取硬件狗產(chǎn)品流水號。
4. HRESULT rc_CheckDog(ULONG DogHandle)
輸入?yún)?shù): DogHandle 硬件狗句柄。
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
檢查是否有狗存在。只有與本OBJ的系列號對應(yīng)的狗并且口令校驗通過的狗才能被檢測到。在調(diào)用本函數(shù)
前開發(fā)商口令或用戶口令應(yīng)當(dāng)校驗通過,否則檢測將會失敗。
5. HRESULT rc_CloseDog(ULONG DogHandle)
輸入?yún)?shù): DogHandle 硬件狗句柄。
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
關(guān)閉硬件狗。開發(fā)商在打開硬件狗并完成對硬件狗后應(yīng)當(dāng)調(diào)用此函數(shù)來關(guān)閉硬件狗。
6. HRESULT rc_VerifyPassword(ULONG DogHandle, UCHAR ucPasswordType, CHAR * pszPassword, UCHAR * pucDegree);
輸入?yún)?shù): DogHandle 硬件狗句柄。
ucPasswordType 口令類型(開發(fā)商口令或用戶口令)。
pszPassword 口令存儲區(qū)地址。
輸出參數(shù): pucDegree 存儲當(dāng)前剩余校驗次數(shù)的地址。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
校驗開發(fā)商口令或用戶口令。在對宏狗的操作中除了獲取硬件狗信息和獲取產(chǎn)品流水號的操作外,在執(zhí)行
其他操作前必須口令校驗通過。
7. HRESULT rc_ChangePassword(ULONG DogHandle, UCHAR ucPasswordType, CHAR * pszPassword)
輸入?yún)?shù): DogHandle 硬件狗句柄。
ucPasswordType 口令類型(開發(fā)商口令或用戶口令)。
pszPassword 口令存儲區(qū)地址。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
修改開發(fā)商口令或用戶口令。如果要修改開發(fā)商口令,需要開發(fā)商口令校驗通過。如果要修改用戶口令
需要用戶口令或用戶口令校驗通過。
8. HRESULT rc_GetUpgradeRequestString(ULONG DogHandle, UCHAR * pucBuf, ULONG * pulLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
輸出參數(shù): pucBuf 升級請求串的存儲區(qū)地址。
輸入/輸出參數(shù):pulLen 輸入時存儲升級串存儲區(qū)的大小,輸出時存儲升級串的大小。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
獲取升級請求串。
9. HRESULT rc_Upgrade(ULONG DogHandle, UCHAR * pucUpgrade, ULONG ulLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
pucUpgrade 升級串存儲區(qū)的地址
ulLen 升級串的長度
輸出參數(shù): 無
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
升級。
10. HRESULT rc_GetRandom(ULONG DogHandle, UCHAR * pucRandom, UCHAR ucLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
ucLen 隨機數(shù)的長度
輸出參數(shù): pucRandom 隨機數(shù)存儲區(qū)的地址。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
獲取硬件隨機數(shù)。
11. HRESULT rc_EncryptData(ULONG DogHandle, UCHAR * pucIn, ULONG ulInLen, UCHAR * pucOut, ULONG *pulOutLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
pucIn 待加密數(shù)據(jù)的存儲區(qū)地址。
ulInLen 加密數(shù)據(jù)的長度,本版本只支持16字節(jié)的數(shù)據(jù)。
輸出參數(shù): pucOut 加密后數(shù)據(jù)的存儲區(qū)地址。
輸入/輸出參數(shù):pulOutLen 輸入時為加密后數(shù)據(jù)的存儲區(qū)大小,輸出時為加密后數(shù)據(jù)的大小。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
數(shù)據(jù)加密。目前只對16字節(jié)的數(shù)據(jù)進(jìn)行加密。加密算法采用標(biāo)準(zhǔn)AES算法Rijndael。
12. HRESULT rc_DecryptData(ULONG DogHandle, UCHAR * pucIn, ULONG ulInLen, UCHAR * pucOut, ULONG * pulOutLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
pucIn 待解密數(shù)據(jù)的存儲區(qū)地址。
ulInLen 解密數(shù)據(jù)的長度,本版本只支持16字節(jié)的數(shù)據(jù)。
輸出參數(shù): pucOut 解密后數(shù)據(jù)的存儲區(qū)地址。
輸入/輸出參數(shù):pulOutLen 輸入時為解密后數(shù)據(jù)的存儲區(qū)大小,輸出時為解密后數(shù)據(jù)的大小。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
數(shù)據(jù)解密。目前只對16字節(jié)的數(shù)據(jù)進(jìn)行解密。解密算法采用標(biāo)準(zhǔn)AES算法Rijndael。
13. HRESULT rc_ConvertData(ULONG DogHandle, UCHAR * pucIn, ULONG ulLen, ULONG * pulRet)
輸入?yún)?shù): DogHandle 硬件狗句柄。
pucIn 待變換數(shù)據(jù)的存儲區(qū)地址。
ulLen 待變換數(shù)據(jù)的長度
輸出參數(shù): pulRet *pulRet中為變換結(jié)果。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
數(shù)據(jù)變換。變換功能即程序向硬件狗發(fā)送一串?dāng)?shù)據(jù),由硬件狗計算后返回一個32位長整型數(shù)據(jù),
發(fā)送的數(shù)據(jù)和返回的數(shù)據(jù)是一一對應(yīng)的??梢酝ㄟ^修改簽名密鑰來更改變換算法的結(jié)果。
14. HRESULT rc_SetKey(ULONG DogHandle, UCHAR ucKeyType, UCHAR * pucIn, ULONG ulLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
ucKeyType 密鑰類型。(1 AES Key 2 Sign Key)
pucIn 密鑰存儲區(qū)地址。
ulLen 密鑰長度。
輸出參數(shù): 無
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
設(shè)置密鑰。調(diào)用此函數(shù)可以設(shè)置加解密密鑰和簽名密鑰,修改完密鑰后,將會影響數(shù)據(jù)加解密,
數(shù)據(jù)簽名和數(shù)據(jù)變換的結(jié)果。
15. HRESULT rc_SignData(ULONG DogHandle, UCHAR * pucIn, ULONG ulLen, UCHAR * pucOut, ULONG * pulOutLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
pucIn 簽名數(shù)據(jù)存儲區(qū)的地址。
ulLen 簽名數(shù)據(jù)的長度。
輸出參數(shù): pucBuf 簽名結(jié)果的存儲區(qū)地址。
輸入/輸出參數(shù):pulOutLen 輸入時為簽名結(jié)果存儲區(qū)的大小,輸出時為簽名結(jié)果的大小。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
數(shù)據(jù)簽名。將簽名數(shù)據(jù)轉(zhuǎn)換成唯一的16字節(jié)數(shù)據(jù)。
16. HRESULT rc_ExecuteFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID,
UCHAR * pucDataIn,ULONG ulInLen, UCHAR * pucDataOut, ULONG * pulOutLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 算法文件所在的目錄ID。
usFileID 算法文件ID
pucDataIn 算法的輸入?yún)?shù)存儲區(qū)地址。
輸出參數(shù): pucData 算法的輸出參數(shù)存儲區(qū)地址。
輸入/輸出參數(shù):pulOutLen 輸入時為輸出參數(shù)存儲區(qū)的大小,輸出時為輸出參數(shù)實際所占
存儲區(qū)的大小。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
執(zhí)行算法文件。
17. HRESULT rc_ReadFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, ULONG ulPos, ULONG ulLen, UCHAR * pucbuf)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 文件所在的目錄ID。
usFileID 文件ID
ulPos 讀取數(shù)據(jù)在文件中的起始地址。
ulLen 讀取數(shù)據(jù)的長度。
輸出參數(shù): pucBuf 讀取數(shù)據(jù)的存儲區(qū)地址。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
讀文件。從數(shù)據(jù)文件中讀取數(shù)據(jù)。
18. HRESULT rc_WriteFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, ULONG ulPos, ULONG ulLen, UCHAR * pucbuf)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 文件所在的目錄ID。
usFileID 文件ID
ulPos 寫入數(shù)據(jù)在文件中的起始地址。
ulLen 寫入數(shù)據(jù)的長度。
pucBuf 寫入數(shù)據(jù)的存儲區(qū)地址。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
寫文件。向數(shù)據(jù)文件中寫入數(shù)據(jù)。
19. HRESULT rc_VisitLicenseFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, ULONG ulReserved)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 文件所在的目錄ID。
usFileID 文件ID
ulReserved 保留
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
訪問許可證文件。
20. HRESULT rc_CreateFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, UCHAR ucFileType, ULONG ulFileLen)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 文件所在的目錄ID。
usFileID 文件ID
ucFileType 要創(chuàng)建文件的類型(1表示數(shù)據(jù)文件,2表示許可證文件,3表示算法文件)
ulFileLen 文件大小。
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
創(chuàng)建文件。在創(chuàng)建文件時,文件大小是指文件存儲區(qū)大小,而不包含10字節(jié)的文件頭信息。
文件在硬件中實際所占空間大小為存儲區(qū)大小與10字節(jié)文件頭的和。
21. HRESULT rc_DeleteFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 文件所在的目錄ID。
usFileID 文件ID
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
刪除文件。如果刪除的文件是所在目錄的最后一個文件,硬件狗會在刪除文件后自動回收空
間。否則需要調(diào)用RC_DefragFileSystem對刪除文件所在的目錄進(jìn)行整理以回收空間。
22. HRESULT rc_CreateDir(ULONG DogHandle, USHORT usDirID, ULONG ulSize)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 目錄ID
ulSize 目錄大小
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
創(chuàng)建目錄。在創(chuàng)建目錄時,目錄大小是指目錄存儲區(qū)大小,而不包含10字節(jié)的目錄頭信息。
目錄在硬件中實際所占空間大小為存儲區(qū)大小與10字節(jié)目錄頭的和。
23. HRESULT rc_DeleteDir(ULONG DogHandle, USHORT usDirID)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 目錄ID。
輸出參數(shù):無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
刪除目錄。如果刪除的目錄位于根目錄最后,硬件狗會在刪除目錄后自動回收空間。否則需
要調(diào)用RC_DefragFileSystem對根目錄進(jìn)行整理以回收空間。
24. HRESULT rc_DefragFileSystem(ULONG DogHandle, USHORT usDirID)
輸入?yún)?shù): DogHandle 硬件狗句柄。
usDirID 目錄ID。
輸出參數(shù): 無。
返回值: 0 表示操作成功。其他值是錯誤碼。
功能:
整理目錄。用于對刪除文件或目錄后對硬件狗文件系統(tǒng)的整理,以便將刪除的文件或目錄所
占用的空間變?yōu)榭捎每臻g。
======================================================================================
"狗"是北京金天地軟件發(fā)展有限公司的注冊商標(biāo),已授權(quán)賽孚耐(北京)信息技術(shù)有限公司使用。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -