SCardReconnect 函数 (winscard.h)
SCardReconnect 函数重新建立调用应用程序和智能卡之间的现有连接。 此函数将卡句柄从直接访问移动到常规访问,或者确认并清除阻止进一步访问卡的错误条件。
语法
LONG SCardReconnect(
[in] SCARDHANDLE hCard,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[in] DWORD dwInitialization,
[out, optional] LPDWORD pdwActiveProtocol
);
参数
[in] hCard
从上一次调用 SCardConnect 获取的引用值。
[in] dwShareMode
指示其他应用程序是否可以与此卡建立连接的标志。
值 | 含义 |
---|---|
|
此应用程序将与其他应用程序共享此卡。 |
|
此应用程序不会与其他应用程序共享此卡。 |
[in] dwPreferredProtocols
此连接的可接受协议的位掩码。 可能的值可以与 OR 操作组合使用。
此参数的值应包含当前协议。 尝试使用当前协议以外的协议重新连接将导致错误。
值 | 含义 |
---|---|
|
T=0 是可接受的协议。 |
|
T=1 是可接受的协议。 |
[in] dwInitialization
应在卡上执行的初始化类型。
值 | 含义 |
---|---|
|
重新连接时不要执行任何特殊操作。 |
|
重置卡 (暖重置) 。 |
|
关闭卡并 (冷重置) 。 |
[out, optional] pdwActiveProtocol
指示已建立的活动协议的标志。
值 | 含义 |
---|---|
|
T=0 是活动协议。 |
|
T=1 是活动协议。 |
返回值
此函数根据是成功还是失败返回不同的值。
返回代码 | 说明 |
---|---|
|
SCARD_S_SUCCESS。 |
|
错误代码。 有关详细信息,请参阅 智能卡返回值。 |
注解
SCardReconnect 是一种智能卡和读取器访问功能。 有关其他访问函数的信息,请参阅 智能卡和读取器访问函数。
示例
以下示例演示如何重新建立连接。
DWORD dwAP;
LONG lReturn;
// Reconnect.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardReconnect(hCardHandle,
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
SCARD_LEAVE_CARD,
&dwAP );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardReconnect\n");
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winscard.h |
Library | Winscard.lib |
DLL | Winscard.dll |