📄 head.pas
字号:
unit head;
interface
type
// 1. 查找计算机上连接的 Rockey2 加密锁设备
TRY2_Find=function():integer;stdcall;
// 返回:
// 如果返回值小于 0,表示返回的是一个错误编码,具体含义请看下面的错误编码。
// 如果返回值为 0,表示没有任何 Rockey2 设备存在。
// 如果返回值大于 0,返回的是找到的 Rockey2 加密锁的个数。
// ====================================================================
// 2. 打开指定的加密锁
TRY2_Open=function(mode:integer; uid :cardinal; var hid :cardinal):integer;stdcall;
// 输入:
// mode 是打开加密锁的方式
// mode = 0 表示的是打开第1个找到的 Rockey2,不理会 UID 和 HID
// mode > 0 表示的是按 UID 方式打开,这时候 mode 的值表示的是要打开锁的序号
// 譬如: uid=12345678, mode=2 表示的是希望打开 uid 等于12345678 的
// 第2把加密锁。
// mode = -1 表示的是按 HID 方式打开,要求 *hid 不能为 0
// uid(UserID)
// 当按 UID 方式打开的时候,在这给出要打开加密锁的 UID,此 UID 就是用户调用
// RY2_GenUID 功能获得的用户 ID。
// hid
// 这个是加密锁的硬件 ID,这是1个输入/输出值,如果按 HID 方式打开加密锁的
// 时候,表示希望打开硬件ID = *hid 的加密锁。
// 不论以哪种方式打开加密锁,在成功打开加密锁以后会在这返回加密锁的硬件 ID
// 返回值:
// 大于等于0 表示成功,返回的就是打开的加密锁的句柄
// 小于0 返回的是一个错误编码,具体含义请看下面的错误编码部分。
// ====================================================================
// 3. 关闭指定的加密锁
TRY2_Close=procedure(handle:integer); stdcall;
// 输入:
// handle 设备的句柄,跟 RY2_Open 命令返回的 handle 一致。
// 返回:
// 返回的是一个错误编码,具体含义请看下面的错误编码部分。
// ====================================================================
// 4. 生成用户 ID
TRY2_GenUID=function(handle:integer; var uid : cardinal; seed: pchar; isProtect:integer):integer;stdcall;
// 输入:
// handle 设备的句柄,跟 RY2_Open 命令返回的 handle 一致。
// uid 输出参数,生成的用户 ID 从此参数返回
// seed 用户给出的用于生成用户 ID 的种子,这是一个最大长度可以是 64 个字节的字符串
// isProtect 用来指定此 Rockey2 是否可写,0 是可写,1 是不可写
// 返回:
// 返回的是一个错误编码,具体含义请看下面的错误编码部分。
// ====================================================================
// 5. 读取加密锁内容
TRY2_Read=function(handle:integer;block_index : integer; buffer512:pchar):integer;stdcall;
// 输入:
// handle 设备的句柄,跟 RY2_Open 命令返回的 handle 一致。
// block_index 块索引,指明要读取的是哪1个块,取值为(0-4)
// buffer512 读出块的缓冲区,因为每个块的长度固定为 512 个字节,所以这个
// buffer 的大小至少是 512 个字节
// 返回:
// 返回的是一个错误编码,具体含义请看下面的错误编码部分。
// ====================================================================
// 6. 写入加密锁内容
TRY2_Write=function(handle:integer;block_index : integer; buffer512:pchar):integer;stdcall;
// 输入:
// handle 设备的句柄,跟 RY2_Open 命令返回的 handle 一致。
// block_index 块索引,指明要写入的是哪1个块,取值为(0-4)
// buffer512 写入块的缓冲区,因为每个块的长度固定为 512 个字节,所以这个
// buffer 的大小至少是 512 个字节
// 返回:
// 返回的是一个错误编码,具体含义请看下面的错误编码部分。
var
RY2_Find : TRY2_Find;
RY2_Open : TRY2_Open;
RY2_Close : TRY2_Close;
RY2_GenUID : TRY2_GenUID;
RY2_Read : TRY2_Read ;
RY2_Write : TRY2_Write;
const
//
AUTO_MODE :integer=0;
HID_MODE :integer=-1;
ROCKEY2_DISABLE_WRITE_PROTECT:integer =0;
ROCKEY2_ENABLE_WRITE_PROTECT:integer =1;
// 错误编码 ===========================================================
// 成功,没有错误
RY2ERR_SUCCESS :integer=0;
// 没有找到给定要求的设备(参数错误)
RY2ERR_NO_SUCH_DEVICE :integer = $A0100001 ;
// 在调用此功能前需要先调用 RY2_Open 打开设备(操作错误)
RY2ERR_NOT_OPENED_DEVICE :integer = $A0100002;
// 给出的 UID 错误(参数错误)
RY2ERR_WRONG_UID :integer = $A0100003 ;
// 读写操作给出的块索引错误(参数错误)
RY2ERR_WRONG_INDEX :integer = $A0100004 ;
// 调用 GenUID 功能的时候,给出的 seed 字符串长度超过了 64 个字节(参数错误)
RY2ERR_TOO_LONG_SEED :integer = $A0100005 ;
// 试图改写已经写保护的硬件(操作错误)
RY2ERR_WRITE_PROTECT :integer = $A0100006 ;
// 打开设备错(Windows 错误)
RY2ERR_OPEN_DEVICE :integer = $A0100007 ;
// 读记录错(Windows 错误)
RY2ERR_READ_REPORT :integer = $A0100008 ;
// 写记录错(Windows 错误)
RY2ERR_WRITE_REPORT :integer = $A0100009 ;
// 内部错误(Windows 错误)
RY2ERR_SETUP_DI_GET_DEVICE_INTERFACE_DETAIL :integer = $A010000A ;
// 内部错误(Windows 错误)
RY2ERR_GET_ATTRIBUTES :integer = $A010000B ;
// 内部错误(Windows 错误)
RY2ERR_GET_PREPARSED_DATA :integer = $A010000C ;
// 内部错误(Windows 错误)
RY2ERR_GETCAPS :integer = $A010000D ;
// 内部错误(Windows 错误)
RY2ERR_FREE_PREPARSED_DATA :integer = $A010000E ;
// 内部错误(Windows 错误)
RY2ERR_FLUSH_QUEUE :integer = $A010000F ;
// 内部错误(Windows 错误)
RY2ERR_SETUP_DI_CLASS_DEVS :integer = $A0100010 ;
// 内部错误(Windows 错误)
RY2ERR_GET_SERIAL :integer = $A0100011 ;
// 内部错误
RY2ERR_TOO_LONG_DEVICE_DETAIL :integer = $A0100012 ;
// 错误的报告长度(硬件错误)
RY2ERR_WRONG_REPORT_LENGTH :integer = $A0100013 ;
// 操作验证错误(硬件错误)
RY2ERR_VERIFY :integer = $A0100014 ;
// 未知错误(硬件错误)
RY2ERR_UNKNOWN_ERROR :integer = $A010FFFF ;
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -