ISCardDatabase:: GetProviderCardId 方法

[GetProviderCardId 方法可用于在 "要求" 部分中指定的操作系统。 它不可用于 Windows Server 2003 Service Pack 1 (SP1) 和更高版本、Windows Vista、Windows Server 2008 和操作系统的后续版本。 智能卡模块提供了类似的功能。]

GetProviderCardId 方法检索指定 智能卡主服务提供程序的标识符 (GUID) 。

语法

HRESULT GetProviderCardId(
  [in]  BSTR   bstrCardName,
  [out] LPGUID *ppguidProviderId
);

参数

bstrCardName [中]

智能卡的名称。

ppguidProviderId [弄]

指向主要服务提供商标识符 (GUID 的指针) 如果成功,则为;如果操作失败,则 为 NULL

返回值

该方法返回以下可能的值之一。

返回代码 说明
S _ 正常
操作已成功完成。
E _ INVALIDARG
参数无效。
E _ 指针
ppguidProviderId 中传递了错误的指针。
E _ OUTOFMEMORY
内存不足。

备注

若要列出智能卡的接口,请调用 ListCardInterfaces

若要检索所有已知 智能卡读取器读取器组 分别调用 ListCardsListReadersListReaderGroups

有关此接口提供的所有方法的列表,请参阅 ISCardDatabase

除了上面列出的 COM 错误代码以外,如果调用智能卡函数来完成请求,则此接口可能会返回智能卡错误代码。 有关详细信息,请参阅 智能卡返回值

示例

下面的示例演示如何检索指定智能卡的主服务提供程序的标识符。

BSTR     bstrCard = NULL;
LPGUID   pguidProvId = NULL;
HRESULT  hr;

bstrCard = SysAllocString(L"My Card");
hr = pISCDataBase->GetProviderCardId(bstrCard,&pguidProvId);
if (FAILED(hr))
{
   printf("Failed GetProviderCardId\n");
}
else
{
    // Use pguidProvId as needed.
}

// Free BSTR when done.
if ( NULL != bstrCard )
{
    SysFreeString(bstrCard);
    bstrCard=NULL;
}

要求

要求
最低受支持的客户端
Windows[仅限 XP 桌面应用]
最低受支持的服务器
Windows[仅限 Server 2003 桌面应用]
客户端支持结束
Windows XP
服务器支持结束
Windows Server 2003
标头
Scardmgr
类型库
Scardmgr
DLL
Scardssp.dll
IID
IID _ ISCardDatabase 定义为1461AAC8-6810-11D0-918F-00AA00C18068

另请参阅

ISCardDatabase

ListCardInterfaces

ListCards

ListReaderGroups

ListReaders