📄 readme-chn.txt
字号:
---------------------------------------------------
宏狗套装 Win32 下调用静态库使用说明
---------------------------------------------------
版权所有 (c) 2004 赛孚耐(北京)信息技术有限公司
================
已通过的测试环境
================
Microsoft Visual C++ 6.0
==============================
Windows32 下调用静态库编程说明
==============================
在 WIN32 环境下调用宏狗静态连接库可以将函数接口头文件RCGrandDogW32.h和静态库RCGrandDogW32.lib包含在
工程中,具体使用方法参见例子程序。
===============
宏狗静态库示例
===============
静态库定义如下函数,并输出给开发商的程序。
1. HRESULT rc_OpenDog(ULONG ulFlag, CHAR * pszProductName,ULONG * pDogHandle)
输入参数: ulFlag 打开狗的标志
pszProductName 硬件狗对应的产品名
输出参数: pDogHandle。
返回值: 0 表示操作成功。其他值是错误码。
功能:
打开硬件狗。只有与本OBJ的系列号对应并且产品名一致的狗才会打开。
ulFlag可以为以下几个标志:
OpenFirstInLocal(1) 打开本地第一只硬件狗。
OpenNextInLocal(2) 打开下一只硬件狗。在使用此标志前,应该先使OpenFirstInLocal打开硬件狗。
OpenInLan(3) 只打开局域网中的硬件狗。
OpenLocalFirst(4) 优先打开本地硬件狗。
OpenLanFirst(5) 优先打开局域网中的硬件狗。
pszProductName为产品名,产品名是以NULL结尾的字符串,最多为15个非零字符。
2. HRESULT rc_GetDogInfo(ULONG DogHandle, RC_HARDWARE_INFO * pHardwareInfo, ULONG * pulLen)
输入参数: DogHandle, 硬件狗句柄
输出参数: pHardwareInfo 存储硬件狗信息的结构内存地址
输入/输出参数:pulLen 输入时为硬件狗信息结构的大小,输出时为返回数据的大小
返回值: 0 表示操作成功。其他值是错误码。
功能:
获取硬件狗信息,硬件狗信息包括系列号、流水号、狗类型,狗型号。
3. HRESULT rc_GetProductCurrentNo(ULONG DogHandle, ULONG * pulProductCurrentNo)
输入参数: DogHandle, 硬件狗句柄
输出参数: pulProductCurrentNo 存储硬件狗产品流水号的内存地址
返回值: 0 表示操作成功。其他值是错误码。
功能:
获取硬件狗产品流水号。
4. HRESULT rc_CheckDog(ULONG DogHandle)
输入参数: DogHandle 硬件狗句柄。
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
检查是否有狗存在。只有与本OBJ的系列号对应的狗并且口令校验通过的狗才能被检测到。在调用本函数
前开发商口令或用户口令应当校验通过,否则检测将会失败。
5. HRESULT rc_CloseDog(ULONG DogHandle)
输入参数: DogHandle 硬件狗句柄。
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
关闭硬件狗。开发商在打开硬件狗并完成对硬件狗后应当调用此函数来关闭硬件狗。
6. HRESULT rc_VerifyPassword(ULONG DogHandle, UCHAR ucPasswordType, CHAR * pszPassword, UCHAR * pucDegree);
输入参数: DogHandle 硬件狗句柄。
ucPasswordType 口令类型(开发商口令或用户口令)。
pszPassword 口令存储区地址。
输出参数: pucDegree 存储当前剩余校验次数的地址。
返回值: 0 表示操作成功。其他值是错误码。
功能:
校验开发商口令或用户口令。在对宏狗的操作中除了获取硬件狗信息和获取产品流水号的操作外,在执行
其他操作前必须口令校验通过。
7. HRESULT rc_ChangePassword(ULONG DogHandle, UCHAR ucPasswordType, CHAR * pszPassword)
输入参数: DogHandle 硬件狗句柄。
ucPasswordType 口令类型(开发商口令或用户口令)。
pszPassword 口令存储区地址。
返回值: 0 表示操作成功。其他值是错误码。
功能:
修改开发商口令或用户口令。如果要修改开发商口令,需要开发商口令校验通过。如果要修改用户口令
需要用户口令或用户口令校验通过。
8. HRESULT rc_GetUpgradeRequestString(ULONG DogHandle, UCHAR * pucBuf, ULONG * pulLen)
输入参数: DogHandle 硬件狗句柄。
输出参数: pucBuf 升级请求串的存储区地址。
输入/输出参数:pulLen 输入时存储升级串存储区的大小,输出时存储升级串的大小。
返回值: 0 表示操作成功。其他值是错误码。
功能:
获取升级请求串。
9. HRESULT rc_Upgrade(ULONG DogHandle, UCHAR * pucUpgrade, ULONG ulLen)
输入参数: DogHandle 硬件狗句柄。
pucUpgrade 升级串存储区的地址
ulLen 升级串的长度
输出参数: 无
返回值: 0 表示操作成功。其他值是错误码。
功能:
升级。
10. HRESULT rc_GetRandom(ULONG DogHandle, UCHAR * pucRandom, UCHAR ucLen)
输入参数: DogHandle 硬件狗句柄。
ucLen 随机数的长度
输出参数: pucRandom 随机数存储区的地址。
返回值: 0 表示操作成功。其他值是错误码。
功能:
获取硬件随机数。
11. HRESULT rc_EncryptData(ULONG DogHandle, UCHAR * pucIn, ULONG ulInLen, UCHAR * pucOut, ULONG *pulOutLen)
输入参数: DogHandle 硬件狗句柄。
pucIn 待加密数据的存储区地址。
ulInLen 加密数据的长度,本版本只支持16字节的数据。
输出参数: pucOut 加密后数据的存储区地址。
输入/输出参数:pulOutLen 输入时为加密后数据的存储区大小,输出时为加密后数据的大小。
返回值: 0 表示操作成功。其他值是错误码。
功能:
数据加密。目前只对16字节的数据进行加密。加密算法采用标准AES算法Rijndael。
12. HRESULT rc_DecryptData(ULONG DogHandle, UCHAR * pucIn, ULONG ulInLen, UCHAR * pucOut, ULONG * pulOutLen)
输入参数: DogHandle 硬件狗句柄。
pucIn 待解密数据的存储区地址。
ulInLen 解密数据的长度,本版本只支持16字节的数据。
输出参数: pucOut 解密后数据的存储区地址。
输入/输出参数:pulOutLen 输入时为解密后数据的存储区大小,输出时为解密后数据的大小。
返回值: 0 表示操作成功。其他值是错误码。
功能:
数据解密。目前只对16字节的数据进行解密。解密算法采用标准AES算法Rijndael。
13. HRESULT rc_ConvertData(ULONG DogHandle, UCHAR * pucIn, ULONG ulLen, ULONG * pulRet)
输入参数: DogHandle 硬件狗句柄。
pucIn 待变换数据的存储区地址。
ulLen 待变换数据的长度
输出参数: pulRet *pulRet中为变换结果。
返回值: 0 表示操作成功。其他值是错误码。
功能:
数据变换。变换功能即程序向硬件狗发送一串数据,由硬件狗计算后返回一个32位长整型数据,
发送的数据和返回的数据是一一对应的。可以通过修改签名密钥来更改变换算法的结果。
14. HRESULT rc_SetKey(ULONG DogHandle, UCHAR ucKeyType, UCHAR * pucIn, ULONG ulLen)
输入参数: DogHandle 硬件狗句柄。
ucKeyType 密钥类型。(1 AES Key 2 Sign Key)
pucIn 密钥存储区地址。
ulLen 密钥长度。
输出参数: 无
返回值: 0 表示操作成功。其他值是错误码。
功能:
设置密钥。调用此函数可以设置加解密密钥和签名密钥,修改完密钥后,将会影响数据加解密,
数据签名和数据变换的结果。
15. HRESULT rc_SignData(ULONG DogHandle, UCHAR * pucIn, ULONG ulLen, UCHAR * pucOut, ULONG * pulOutLen)
输入参数: DogHandle 硬件狗句柄。
pucIn 签名数据存储区的地址。
ulLen 签名数据的长度。
输出参数: pucBuf 签名结果的存储区地址。
输入/输出参数:pulOutLen 输入时为签名结果存储区的大小,输出时为签名结果的大小。
返回值: 0 表示操作成功。其他值是错误码。
功能:
数据签名。将签名数据转换成唯一的16字节数据。
16. HRESULT rc_ExecuteFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID,
UCHAR * pucDataIn,ULONG ulInLen, UCHAR * pucDataOut, ULONG * pulOutLen)
输入参数: DogHandle 硬件狗句柄。
usDirID 算法文件所在的目录ID。
usFileID 算法文件ID
pucDataIn 算法的输入参数存储区地址。
输出参数: pucData 算法的输出参数存储区地址。
输入/输出参数:pulOutLen 输入时为输出参数存储区的大小,输出时为输出参数实际所占
存储区的大小。
返回值: 0 表示操作成功。其他值是错误码。
功能:
执行算法文件。
17. HRESULT rc_ReadFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, ULONG ulPos, ULONG ulLen, UCHAR * pucbuf)
输入参数: DogHandle 硬件狗句柄。
usDirID 文件所在的目录ID。
usFileID 文件ID
ulPos 读取数据在文件中的起始地址。
ulLen 读取数据的长度。
输出参数: pucBuf 读取数据的存储区地址。
返回值: 0 表示操作成功。其他值是错误码。
功能:
读文件。从数据文件中读取数据。
18. HRESULT rc_WriteFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, ULONG ulPos, ULONG ulLen, UCHAR * pucbuf)
输入参数: DogHandle 硬件狗句柄。
usDirID 文件所在的目录ID。
usFileID 文件ID
ulPos 写入数据在文件中的起始地址。
ulLen 写入数据的长度。
pucBuf 写入数据的存储区地址。
返回值: 0 表示操作成功。其他值是错误码。
功能:
写文件。向数据文件中写入数据。
19. HRESULT rc_VisitLicenseFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, ULONG ulReserved)
输入参数: DogHandle 硬件狗句柄。
usDirID 文件所在的目录ID。
usFileID 文件ID
ulReserved 保留
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
访问许可证文件。
20. HRESULT rc_CreateFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID, UCHAR ucFileType, ULONG ulFileLen)
输入参数: DogHandle 硬件狗句柄。
usDirID 文件所在的目录ID。
usFileID 文件ID
ucFileType 要创建文件的类型(1表示数据文件,2表示许可证文件,3表示算法文件)
ulFileLen 文件大小。
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
创建文件。在创建文件时,文件大小是指文件存储区大小,而不包含10字节的文件头信息。
文件在硬件中实际所占空间大小为存储区大小与10字节文件头的和。
21. HRESULT rc_DeleteFile(ULONG DogHandle, USHORT usDirID, USHORT usFileID)
输入参数: DogHandle 硬件狗句柄。
usDirID 文件所在的目录ID。
usFileID 文件ID
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
删除文件。如果删除的文件是所在目录的最后一个文件,硬件狗会在删除文件后自动回收空
间。否则需要调用RC_DefragFileSystem对删除文件所在的目录进行整理以回收空间。
22. HRESULT rc_CreateDir(ULONG DogHandle, USHORT usDirID, ULONG ulSize)
输入参数: DogHandle 硬件狗句柄。
usDirID 目录ID
ulSize 目录大小
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
创建目录。在创建目录时,目录大小是指目录存储区大小,而不包含10字节的目录头信息。
目录在硬件中实际所占空间大小为存储区大小与10字节目录头的和。
23. HRESULT rc_DeleteDir(ULONG DogHandle, USHORT usDirID)
输入参数: DogHandle 硬件狗句柄。
usDirID 目录ID。
输出参数:无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
删除目录。如果删除的目录位于根目录最后,硬件狗会在删除目录后自动回收空间。否则需
要调用RC_DefragFileSystem对根目录进行整理以回收空间。
24. HRESULT rc_DefragFileSystem(ULONG DogHandle, USHORT usDirID)
输入参数: DogHandle 硬件狗句柄。
usDirID 目录ID。
输出参数: 无。
返回值: 0 表示操作成功。其他值是错误码。
功能:
整理目录。用于对删除文件或目录后对硬件狗文件系统的整理,以便将删除的文件或目录所
占用的空间变为可用空间。
======================================================================================
"狗"是北京金天地软件发展有限公司的注册商标,已授权赛孚耐(北京)信息技术有限公司使用。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -