SCardControl 函数 (winscard.h)
使用 SCardControl 函数可以直接控制读取器。 在成功调用 SCardConnect 之后和成功调用 SCardDisconnect 之前,可以随时调用它。 对读取器 状态 的影响取决于控件代码。
语法
LONG SCardControl(
[in] SCARDHANDLE hCard,
[in] DWORD dwControlCode,
[in] LPCVOID lpInBuffer,
[in] DWORD cbInBufferSize,
[out] LPVOID lpOutBuffer,
[in] DWORD cbOutBufferSize,
[out] LPDWORD lpBytesReturned
);
参数
[in] hCard
从 SCardConnect 返回的引用值。
[in] dwControlCode
操作的控制代码。 此值标识要执行的特定操作。
[in] lpInBuffer
指向缓冲区的指针,该缓冲区包含执行操作所需的数据。 如果 dwControlCode 参数指定的操作不需要输入数据,则此参数可以为 NULL。
[in] cbInBufferSize
lpInBuffer 指向的缓冲区的大小(以字节为单位)。
[out] lpOutBuffer
指向接收操作输出数据的缓冲区的指针。 如果 dwControlCode 参数指定的操作不生成输出数据,则此参数可以为 NULL。
[in] cbOutBufferSize
lpOutBuffer 指向的缓冲区的大小(以字节为单位)。
[out] lpBytesReturned
指向 DWORD 的指针,该 DWORD 接收 lpOutBuffer 指向的缓冲区中存储的数据的大小(以字节为单位)。
返回值
此函数根据是成功还是失败返回不同的值。
返回代码 | 说明 |
---|---|
|
SCARD_S_SUCCESS。 |
|
错误代码。 有关详细信息,请参阅 智能卡返回值。 |
注解
SCardControl 函数是直接卡访问函数。 有关其他直接访问函数的详细信息,请参阅 直接卡访问函数。
示例
以下示例发出一个控件代码。 该示例假定 hCardHandle 是从上一次调用 SCardConnect 时收到的有效句柄,而 dwControlCode 是以前初始化为有效控件代码的 DWORD 类型的变量。 此特定控制代码不需要输入数据,并且不需要输出数据。
lReturn = SCardControl( hCardHandle,
dwControlCode,
NULL,
0,
NULL,
0,
0 );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardControl\n");
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winscard.h |
Library | Winscard.lib |
DLL | Winscard.dll |