次の方法で共有


ISCard::AttachByReader メソッド

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

AttachByReader メソッドは、名前付きリーダーでスマート カードを開きます

構文

HRESULT AttachByReader(
  [in] BSTR              bstrReaderName,
  [in] SCARD_SHARE_MODES ShareMode,
  [in] SCARD_PROTOCOLS   PrefProtocol
);

パラメーター

bstrReaderName [in]

スマート カード リーダーの名前を含む BSTR

ShareMode [in]

スマート カードへのアクセスを要求するモード。

説明
排他的
スマート カードへのこの接続を他のユーザーが使用することはありません。
共有
他のアプリケーションでは、この接続を使用できます。

 

PrefProtocol [in]

推奨されるプロトコル値。

T0

T1

RAW

T0|T1

戻り値

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

リターン コード 説明
S_OK
名前付きリーダーのスマート カードで開くが正常に完了しました。
E_INVALIDARG
関数に渡される 1 つ以上のパラメーターに問題があります。

 

解説

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

リーダーの使用が完了したら、 ISCard::D etach メソッドを呼び出して添付ファイルを解放します。

次の例は、指定したスマート カード リーダーでスマート カードにアタッチする方法を示しています。

#include <windows.h>
#include <stdio.h>
#include <Scardmgr.h>

// The reader name is vendor specific; change as needed.
#define READER_NAME L"Vendor Reader 0"

void main()
{
    BSTR     bstrReader = NULL;
    HRESULT  hr;

    bstrReader = SysAllocString(READER_NAME);
    if (NULL == bstrReader)
    {
        // Error encountered.
        exit(1);
    }

    // Connect to the reader.
    hr = pISCard->AttachByReader(bstrReader, SHARED, T0);
    if (FAILED(hr))
    {
        printf("Failed AttachByReader\n");
        // Take other error handling action.
        // ...
    }

    // Detach reader by calling ISCard::Detach (not shown).
    // ...

    // When done, free BSTR.
    if (NULL != bstrReader)
        SysFreeString(bstrReader);
}

要件

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

関連項目

AttachByHandle

デタッチ

ISCard

再接続