SCardReconnect 関数 (winscard.h)
SCardReconnect 関数は、呼び出し元のアプリケーションとスマート カードの間の既存の接続を再確立します。 この関数は、カード ハンドルを直接アクセスから一般的なアクセスに移動するか、カードへのそれ以上のアクセスを妨げているエラー状態を確認してクリアします。
構文
LONG SCardReconnect(
[in] SCARDHANDLE hCard,
[in] DWORD dwShareMode,
[in] DWORD dwPreferredProtocols,
[in] DWORD dwInitialization,
[out, optional] LPDWORD pdwActiveProtocol
);
パラメーター
[in] hCard
SCardConnect の以前の呼び出しから取得した参照値。
[in] dwShareMode
他のアプリケーションがこのカードへの接続を形成できるかどうかを示すフラグ。
値 | 意味 |
---|---|
|
このアプリケーションは、このカードを他のアプリケーションと共有します。 |
|
このアプリケーションは、このカードを他のアプリケーションと共有しません。 |
[in] dwPreferredProtocols
この接続で許容されるプロトコルのビットマスク。 使用できる値は 、OR 演算と組み合わせることができます。
このパラメーターの値には、現在のプロトコルを含める必要があります。 現在のプロトコル以外のプロトコルと再接続しようとすると、エラーが発生します。
値 | 意味 |
---|---|
|
T=0 は許容されるプロトコルです。 |
|
T=1 は許容されるプロトコルです。 |
[in] dwInitialization
カードで実行する初期化の種類。
値 | 意味 |
---|---|
|
再接続時に特別な操作を行わないでください。 |
|
カードをリセットします (ウォーム リセット)。 |
|
カードの電源を切り、リセットします (コールド リセット)。 |
[out, optional] pdwActiveProtocol
確立されたアクティブなプロトコルを示すフラグ。
値 | 意味 |
---|---|
|
T=0 はアクティブなプロトコルです。 |
|
T=1 はアクティブなプロトコルです。 |
戻り値
この関数は、成功するか失敗したかに応じて異なる値を返します。
リターン コード | 説明 |
---|---|
|
SCARD_S_SUCCESS。 |
|
エラー コード。 詳細については、「 スマート カードの戻り値」を参照してください。 |
注釈
SCardReconnect は、スマート カードおよびリーダー アクセス関数です。 その他のアクセス機能については、「 スマート カードおよびリーダー アクセス関数」を参照してください。
例
次の例は、接続の再確立を示しています。
DWORD dwAP;
LONG lReturn;
// Reconnect.
// hCardHandle was set by a previous call to SCardConnect.
lReturn = SCardReconnect(hCardHandle,
SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0 | SCARD_PROTOCOL_T1,
SCARD_LEAVE_CARD,
&dwAP );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardReconnect\n");
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | winscard.h |
Library | Winscard.lib |
[DLL] | Winscard.dll |