次の方法で共有


ISCardDatabase::ListCards メソッド

[ ListCards メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 Windows Server 2003 Service Pack 1 (SP1) 以降、Windows Vista、Windows Server 2008、およびそれ以降のバージョンのオペレーティング システムでは使用できません。 スマート カード モジュールも同様の機能を提供します

ListCards メソッドは、指定したインターフェイス識別子 (GUID)、指定した ATR 文字列、またはその両方に一致するすべてのスマート カード名を取得します。

構文

HRESULT ListCards(
  [in]  LPBYTEBUFFER pAtr,
  [in]  LPSAFEARRAY  pInterfaceGuids,
  [in]  LONG         localeId,
  [out] LPSAFEARRAY  *ppCardNames
);

パラメーター

pAtr [in]

スマート カード ATR 文字列へのポインター。 ATR 文字列は IByteBuffer にパッケージ化する必要があります。

pInterfaceGuids [in]

BSTR 形式の COM インターフェイス識別子 (GUID) の SAFEARRAY へのポインター。

localeId [in]

言語ローカライズ識別子。

ppCardNames [out]

成功した場合に検索パラメーターを満たすスマート カードの名前を含む BSTR の SAFEARRAY へのポインター。操作が失敗した場合は NULL

戻り値

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

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

 

解説

すべての既知の リーダー または リーダーを取得するには、 ListReaders または ListReaderGroups をそれぞれ呼び出します。

プライマリ サービスまたは特定のカード GetProviderCardId または ListCardInterfaces のインターフェイスをそれぞれ取得します。

このインターフェイスによって提供されるすべてのメソッドの一覧については、「 ISCardDatabase」を参照してください。

上記の COM エラー コードに加えて、スマート カード関数が呼び出されて要求を完了した場合、このインターフェイスはスマート カード エラー コードを返す場合があります。 詳細については、「 スマート カードの戻り値」を参照してください。

次の例は、指定した ATR 文字列に一致するスマート カード名の取得を示しています。

// Define or determine byAtr as needed for your ATR use.
BYTE byAtr[] = {0x3b,0x27,0x00,0x80,0x65,0xa2,0x0c,0x01,0x01,0x37};
LPSAFEARRAY pSafeArray = NULL;
HRESULT          hr;

// pIByteBuff is a pointer to an instance of IByteBuffer.
hr = pIByteBuff->Initialize(sizeof(byAtr), byAtr);

// Call the function for the specified ATR.
hr = pISCDataBase->ListCards(pIByteBuff,
                             NULL,
                             0,
                             &pSafeArray);
if (FAILED(hr))
{
   printf("Failed ListCards\n");
   // Take other error handling action as needed.
}
else
{
   // Use the safe array as needed.
}

必要条件

要件
サポートされている最小のクライアント
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 として定義されています

関連項目

GetProviderCardId

ISCardDatabase

ListCardInterfaces

ListReaderGroups

ListReaders