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 [in]

スマート カードの名前。

ppguidProviderId [out]

成功した場合は、プライマリ サービス プロバイダーの識別子 (GUID) へのポインター。操作に失敗した場合は NULL 。

戻り値

メソッドは、次のいずれかの可能な値を返します。

リターン コード 説明
S_OK
操作は正常に完了しました。
E_INVALIDARG
無効なパラメーター。
E_POINTER
ppguidProviderId で不適切なポインターが渡されました。
E_OUTOFMEMORY
メモリが不足しています。

 

解説

スマート カードのインターフェイスを一覧表示するには、ListCardInterfaces を呼び出します。

すべての既知の スマート カードを取得するには、 リーダー と リーダー グループ は、それぞれ ListCards、 ListReaders、 ListReaderGroups を呼び出します。

このインターフェイスによって提供されるすべてのメソッドの一覧については、「 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.h
タイプ ライブラリ
Scardmgr.tlb
[DLL]
Scardssp.dll
IID
IID_ISCardDatabaseは 1461AAC8-6810-11D0-918F-00AA00C18068 として定義されています

関連項目

ISCardDatabase

ListCardInterfaces

ListCards

ListReaderGroups

ListReaders