⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hkcommand.h

📁 作为信息安全的一辅助工具,主要用于初始化USBKEY,从而使USBKEY存储用户的相关信息.
💻 H
字号:
//********************************************************************************
//文件名: HKCommand.h
//版本:2.0
//描述:本文件定义TaiCOS中部分命令的C语言函数接口和相关密码算法函数接口等
//北京海泰方圆科技有限公司
//********************************************************************************
#ifndef __HKCommand_H
#define __HKCommand_H

#include <Windows.h>

#define HAIKEY_SUCCESS                  0     //所有函数执行成功时的返回值
#define MAX_READER_NAME_LENGTH	        128    //最大设备名长度
#define MAX_ATR_LENGTH	                32
#define SERIAL_NUM_LEN				    8     //设备序列号长度

#define HGS_STATE_EMPTY					0x0010
#define HGS_STATE_PRESENT				0x0020

			
#ifdef __cplusplus
extern "C" {
#endif

//设备插入处理函数原型,参见函数 HKSetDevChgFunc
typedef DWORD (__stdcall *DEVINSERTED)(IN void *pParam);//输入,设备插入处理函数的参数
//设备拔除处理函数原型,参见函数 HKSetDevChgFunc
typedef DWORD (__stdcall *DEVREMOVED)(IN void *pParam);//输入,设备拔除处理函数的参数

//取所有读写器名字
DWORD _stdcall HKListReaders
(
	OUT LPSTR pszReaderName,    //输出,多字符串,所有读写器的名称
	IN OUT DWORD *pdwReaderNameLen,//输入输出,读写器名称的长度,若参数pszReaderName为NULL,则返回其所需空间大小
	OUT DWORD *pdwReaderNum		//输出,读写器的个数
);

//根据可用设备名连接到一个HaiKey设备
DWORD _stdcall HKConnectDev
(
	IN LPCSTR szDevName,//输入,可用设备名
	OUT HANDLE *phCard  //输出,设备的操作句柄
);

//断开连接
DWORD _stdcall	HKDisconnectDev
(
	IN HANDLE hCard//输入,设备的操作句柄
);

//判断设备是否插入
DWORD _stdcall HKGetDevState(IN  LPCSTR szReaderName,	//输入,读写器名称。
							 OUT DWORD *pdwState);	//输出,设备存在时为HGS_STATE_PRESENT,不存在时为HGS_STATE_EMPTY

//对可用HaiKey设备执行复位操作
DWORD _stdcall HKReset
(
	IN HANDLE hCard,	   //输入,HaiKey的操作句柄
	OUT BYTE *pbATR,	   //输出,返回ATR信息;可以为NULL
	IN OUT DWORD *pdwATRLen//输入输出,输入时给出pbATR缓冲区长度;输出时为实际ATR长度,不超过32字节;可以为NULL
);

//取已连接设备的复位应答信息
DWORD _stdcall HKGetATR
(
	IN HANDLE hCard,	   //输入,HaiKey的操作句柄
	OUT BYTE *pbATR,       //输出,返回ATR信息
    IN OUT DWORD *pdwATRLen//输入输出,输入时给出pbATR缓冲区长度;输出时为实际ATR长度,不超过32字节
);

//取已连接设备的序列号
DWORD _stdcall HKGetSerialNum
(	
	IN HANDLE hCard,				   //输入,HaiKey的操作句柄
	OUT BYTE bSerialNum[SERIAL_NUM_LEN]//输出,HaiKey的序列号,为8字节有效数据
);

//发送COS指令
DWORD _stdcall HKTransmit
(
	IN HANDLE hCard,		   //输入,HaiKey的操作句柄
	IN const BYTE *pbCommand,  //输入,发送的COS指令
	IN DWORD dwCommandLen,     //输入,发送的COS指令长度
	OUT BYTE *pbRetBuf,		   //输出,指令执行后卡片返回的数据的缓冲区
	IN OUT DWORD *pdwRetBufLen,//输入输出,输入时表示pbRetBuf的大小,必须足够大;
							   //输出时,为pbRetBuf中返回数据的长度
	OUT DWORD *pdwCosState     //输出,执行指令后COS返回的状态码
);


//指定读写器名,注册相应的设备插拔处理函数
DWORD _stdcall HKSetDevChgFunc(IN LPCSTR szReaderName,   //输入,读写器名称
							   IN DEVINSERTED InsertProc,//输入,设备插入处理函数							   
							   IN DEVREMOVED RemoveProc, //输入,设备拔除处理函数
							   IN void *pProcParam,	     //输入,设备插拔处理函数的参数							   
							   OUT HANDLE *phEvtHandler);//输出,插拔事件处理句柄

//以插拔事件处理句柄注册设备的插拔处理函数或其参数
DWORD _stdcall HKSetDevChgFuncParam(IN HANDLE hEvtHandler,    //输入,插拔事件处理句柄
								 IN DEVINSERTED InsertProc,//输入,设备插入处理函数
							     IN DEVREMOVED RemoveProc, //输入,设备拔除处理函数
								 IN void *pProcParam);     //输入,设备插拔处理函数的参数
								 
								 
//开始执行事务处理,即请求以独占方式操作该设备,以支持多应用
DWORD _stdcall HKBeginTransaction
(
	IN HANDLE hCard//输入,设备的操作句柄
);

//结束当前事务处理,即终止本次对设备的独占访问,以支持多应用
DWORD _stdcall HKEndTransaction
(
	IN HANDLE hCard//输入,设备的操作句柄
);

#ifdef __cplusplus
}
#endif

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -