SCardEstablishContext 函数 (winscard.h)
SCardEstablishContext 函数 (执行数据库操作的范围) 建立资源管理器上下文。
语法
LONG SCardEstablishContext(
[in] DWORD dwScope,
[in] LPCVOID pvReserved1,
[in] LPCVOID pvReserved2,
[out] LPSCARDCONTEXT phContext
);
参数
[in] dwScope
资源管理器上下文的范围。 此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
数据库操作在用户的域中执行。 |
|
数据库操作在系统的域中执行。 调用应用程序必须对任何数据库操作具有适当的访问权限。 |
[in] pvReserved1
保留以供将来使用,必须为 NULL。 此参数将允许具有适当特权的管理应用程序代表其他用户进行操作。
[in] pvReserved2
保留以供将来使用,必须为 NULL。
[out] phContext
已建立的 资源管理器上下文的句柄。 现在可以将此句柄提供给尝试在此上下文中执行工作的其他函数。
返回值
如果函数成功,该函数将返回SCARD_S_SUCCESS。
如果该函数失败,它将返回错误代码。 有关详细信息,请参阅 智能卡返回值。
备注
数据库查询和管理功能可以使用 SCardEstablishContext 返回的上下文句柄。 有关详细信息,请参阅 智能卡数据库查询函数 和 智能卡数据库管理功能。
若要释放已建立的资源管理器上下文,请使用 SCardReleaseContext。
如果客户端尝试在远程会话(例如终端服务器上运行的客户端会话)中执行智能卡操作,并且正在使用的操作系统不支持智能卡重定向,则此函数将返回ERROR_BROKEN_PIPE。
示例
以下示例建立资源管理器上下文。
SCARDCONTEXT hSC;
LONG lReturn;
// Establish the context.
lReturn = SCardEstablishContext(SCARD_SCOPE_USER,
NULL,
NULL,
&hSC);
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardEstablishContext\n");
else
{
// Use the context as needed. When done,
// free the context by calling SCardReleaseContext.
// ...
}
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | winscard.h |
Library | Winscard.lib |
DLL | Winscard.dll |