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