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

指示其他应用程序是否可以与此卡建立连接的标志。

含义
SCARD_SHARE_SHARED
此应用程序将与其他应用程序共享此卡。
SCARD_SHARE_EXCLUSIVE
此应用程序不会与其他应用程序共享此卡。

[in] dwPreferredProtocols

此连接的可接受协议的位掩码。 可能的值可以与 OR 操作组合使用。

此参数的值应包含当前协议。 尝试使用当前协议以外的协议重新连接将导致错误。

含义
SCARD_PROTOCOL_T0
T=0 是可接受的协议。
SCARD_PROTOCOL_T1
T=1 是可接受的协议。

[in] dwInitialization

应在卡上执行的初始化类型。

含义
SCARD_LEAVE_CARD
重新连接时不要执行任何特殊操作。
SCARD_RESET_CARD
重置卡 (暖重置) 。
SCARD_UNPOWER_CARD
关闭卡并 (冷重置) 。

[out, optional] pdwActiveProtocol

指示已建立的活动协议的标志。

含义
SCARD_PROTOCOL_T0
T=0 是活动协议。
SCARD_PROTOCOL_T1
T=1 是活动协议。

返回值

此函数根据是成功还是失败返回不同的值。

返回代码 说明
Success
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

另请参阅

SCardConnect

SCardDisconnect