次の方法で共有


ISCard::get_Atr メソッド

[ get_Atr メソッドは、[要件] セクションで指定したオペレーティング システムで使用できます。 スマート カード モジュールも同様の機能を提供します

get_Atr メソッドは、スマート カードATR 文字列を取得します。

構文

HRESULT get_Atr(
  [out] LPBYTEBUFFER *ppAtr
);

パラメーター

ppAtr [out]

戻り時に ATR 文字列を含む IStream の形式のバイト バッファーへのポインター。

戻り値

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

リターン コード 説明
S_OK
操作は正常に完了しました。
E_INVALIDARG
ppAtr パラメーターが無効です。
E_POINTER
不適切なポインターが ppAtr で渡されました。
E_OUTOFMEMORY
要求を満たすメモリは使用できません。

 

解説

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

次の例は、スマート カードから ATR 文字列を取得する方法を示しています。

// Retrieve the ATR.
// pISCard is a pointer to a previously instantiated ISCard.
// pAtr is a pointer to a previously instantiated IByteBuffer.
hr = pISCard->get_Atr(&pAtr);
if (FAILED(hr))
{
    printf("Failed get_Atr\n");
    // Take other error handling action.
}
// Success, you can now use IByteBuffer::Read to access ATR bytes.
BYTE  byAtr[32];
   long  lBytesRead, i;
   // Read the ATR string into a byte array.
   hr = pAtr->Read(byAtr, 32, &lBytesRead);
   // Use the ATR value. (This example merely displays the bytes.)
   for ( i = 0; i < lBytesRead; i++)
       printf("%c", *(byAtr + i));
   printf("\n");

要件

要件
サポートされている最小のクライアント
Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2003 [デスクトップ アプリのみ]
クライアント サポートの終了
Windows XP
サーバー サポートの終了
Windows Server 2003
ヘッダー
Scardmgr.h
タイプ ライブラリ
Scardmgr.tlb
[DLL]
Scardssp.dll
IID
IID_ISCardは 1461AAC3-6810-11D0-918F-00AA00C18068 として定義されています

関連項目

get_CardHandle

get_Context

get_Protocol

get_Status

ISCard

IByteBuffer::Read