SCardSetAttrib 函数 (winscard.h)

SCardSetAttrib 函数为给定句柄设置给定读取器属性。 它不会影响读取器读取器驱动程序智能卡的状态。 并非所有属性都受所有读取器 (也不能在) 设置,因为许多属性都受传输协议的直接控制。

语法

LONG SCardSetAttrib(
  [in] SCARDHANDLE hCard,
  [in] DWORD       dwAttrId,
  [in] LPCBYTE     pbAttr,
  [in] DWORD       cbAttrLen
);

参数

[in] hCard

SCardConnect 返回的引用值。

[in] dwAttrId

要设置的属性的标识符。 这些值是只写的。 请注意,供应商可能并不支持所有属性。

含义
SCARD_ATTR_SUPRESS_T1_IFS_REQUEST
禁止将 T=1 IFSD 数据包从读取器发送到卡。 如果当前插入的卡不支持 IFSD 请求,则可以使用 (。)

[in] pbAttr

指向缓冲区的指针,该缓冲区提供其 ID 以 dwAttrId 提供的属性。

[in] cbAttrLen

pbAttr 缓冲区中属性值) 长度 (字节。

返回值

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

返回代码 说明
Success
SCARD_S_SUCCESS。
失败
错误代码。 有关详细信息,请参阅 智能卡返回值

注解

SCardSetAttrib 函数是直接卡访问函数。 有关其他直接访问函数的信息,请参阅 直接卡访问函数

示例

以下示例演示如何设置属性。

// Set the attribute.
// hCardHandle was set by a previous call to SCardConnect.
// dwAttrID is a DWORD value, specifying the attribute ID.
// pbAttr points to the buffer of the new value.
// cByte is the count of bytes in the buffer.
lReturn = SCardSetAttrib(hCardHandle,
                         dwAttrID,
                         (LPBYTE)pbAttr,
                         cByte);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardSetAttrib\n");

要求

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

另请参阅

SCardConnect

SCardGetAttrib