SCardBeginTransaction 函数 (winscard.h)

SCardBeginTransaction 函数启动事务

函数在开始之前等待所有其他事务完成。 事务启动后,所有其他应用程序在事务正在进行时被阻止访问智能卡

语法

LONG SCardBeginTransaction(
  [in] SCARDHANDLE hCard
);

参数

[in] hCard

从上一次调用 SCardConnect 获取的引用值。

返回值

如果函数成功,则返回 SCARD_S_SUCCESS

如果函数失败,它将返回错误代码。 有关详细信息,请参阅 智能卡返回值

如果另一个进程或线程重置了卡,则会按预期返回SCARD_W_RESET_CARD。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003 和 Windows XP: 即使其他进程或线程重置了,此函数也会返回SCARD_S_SUCCESS。 若要确定卡是否已重置,请在调用此函数后立即调用 SCardStatus 函数。

注解

如果事务在卡上保留超过五秒钟,但没有在该卡上执行任何操作,则卡将重置。 在事务处理卡上调用任何智能卡和读取器访问函数直接卡访问函数会导致计时器重置为继续允许使用事务。

SCardBeginTransaction 函数是一种智能卡读取器访问函数。 有关其他访问函数的详细信息,请参阅 智能卡和读取器访问函数

示例

以下示例演示如何开始智能卡事务。 该示例假定 lReturn一个 LONG 类型的现有变量, hCard 并且是从之前调用 SCardConnect 时收到的有效句柄。


lReturn = SCardBeginTransaction( hCard );
if ( SCARD_S_SUCCESS != lReturn )
 printf("Failed SCardBeginTransaction\n");

要求

要求
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 winscard.h
Library Winscard.lib
DLL Winscard.dll

另请参阅

SCardConnect

SCardEndTransaction