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

📄 prsmc.h

📁 MiniWinOuterSM MiniWinOuterSM
💻 H
字号:
/*
	PrSmc.h
	Copyright (C) 2004-2005 DVBStudio. All rights reserved.
*/

#ifndef _PrSMC_H_
#define _PrSMC_H_

#include "PrTypes.h"

PR_BEGIN_EXTERN_C

typedef enum
{
	PrSMC_PROTO_T0 = 0x01,	//T0协议
	PrSMC_PROTO_T1 = 0x02,	//T1协议
	PrSMC_PROTO_T14 = 0x04	//T14协议
} PRSmcProtocol;

typedef struct
{
	PRSmcProtocol supportedProts;	//智能卡支持的协议簇
	UINT32 smcsNum;				//智能卡数量
} PRSmcCapability;

typedef struct
{
	UINT8 *header;	//拷贝T0协议头的缓冲区
	UINT8 *data;		//拷贝T0协议数据的缓冲区
	UINT8 *sw1;		//拷贝T0协议状态字节1的缓冲区
	UINT8 *sw2;		//拷贝T0协议状态字节2的缓冲区
} PRSmcReadParamsT0;

typedef struct
{
	UINT32 reserved;	//保留
} PRSmcReadParamsT1;

typedef struct
{
	UINT32 *length;	//拷贝T14协议数据长度的缓冲区
	UINT8 *data;		//拷贝T14协议数据的缓冲区
} PRSmcReadParamsT14;

typedef union
{
	PRSmcReadParamsT0 t0;		//T0协议参数
	PRSmcReadParamsT1 t1;		//T1协议参数
	PRSmcReadParamsT14 t14;		//T14协议参数
} PRSmcReadParamsUnion;

typedef struct
{
	UINT8 *header;	//T0协议头
	UINT8 *data;		//T0协议数据
	UINT8 *sw1;		//T0协议状态字节1
	UINT8 *sw2;		//T0协议状态字节2
} PRSmcWriteParamsT0;

typedef struct
{
	UINT32 reserved;	//保留
} PRSmcWriteParamsT1;

typedef struct
{
	UINT32 *length;	//T14协议数据长度
	UINT8 *data;		//T14协议数据
} PRSmcWriteParamsT14;

typedef union
{
	PRSmcWriteParamsT0 t0;		//T0协议参数
	PRSmcWriteParamsT1 t1;		//T1协议参数
	PRSmcWriteParamsT14 t14;	//T14协议参数
} PRSmcWriteParamsUnion;

typedef enum
{
	PrSMC_EVENT_NONE = 0x0,		//空事件
	PrSMC_EVENT_INSERTED = 0x1,	//智能卡插入事件
	PrSMC_EVENT_REMOVED = 0x2,		//智能卡拔出事件
	PrSMC_EVENT_ERROR = 0x4		//智能卡错误事件
} PRSmcEventType;

typedef PRStatus (*PRSmcEventNotify)(UINT32 smc, PRSmcEventType eventType);

PRStatus PrSmcInit(void);
PRStatus PrSmcTerm(void);
PRStatus PrSmcGetCapability(INT32 smc, PRSmcCapability *capability);
PRStatus PrSmcOpen(INT32 smc, PRSmcProtocol prot);
PRStatus PrSmcClose(INT32 smc);
PRStatus PrSmcRegisterEventNotify(INT32 smc, PRSmcEventNotify eventNotify);
PRStatus PrSmcReset(INT32 smc, UINT8 *atr);
PRStatus PrSmcRead(INT32 smc, PRSmcReadParamsUnion *params);
PRStatus PrSmcWrite(INT32 smc, PRSmcWriteParamsUnion *params);

PR_END_EXTERN_C

#endif	/* _PrSMC_H_ */

⌨️ 快捷键说明

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