SCardEndTransaction 関数 (winscard.h)

SCardEndTransaction 関数は、以前に宣言されたトランザクションを完了し、他のアプリケーションがカードとの対話を再開できるようにします。

構文

LONG SCardEndTransaction(
  [in] SCARDHANDLE hCard,
  [in] DWORD       dwDisposition
);

パラメーター

[in] hCard

SCardConnect の以前の呼び出しから取得した参照値。 この値は、 以前の SCardBeginTransaction の呼び出しでも使用されていました。

[in] dwDisposition

接続されているリーダーのカードに対して実行するアクションを閉じます。

意味
SCARD_EJECT_CARD
カードを取り出します。
SCARD_LEAVE_CARD
特別なことはしないでください。
SCARD_RESET_CARD
カードをリセットします。
SCARD_UNPOWER_CARD
カードの電源を切る。

戻り値

関数が成功した場合、関数は SCARD_S_SUCCESSを返します。

関数が失敗した場合はエラー コードを返します。 詳細については、「 スマート カードの戻り値」を参照してください。 考えられるエラー コードは次のとおりです。

リターン コード/値 Description
SCARD_W_RESET_CARD
0x80100068L
トランザクションがリリースされました。 カードとの今後の通信には、SCardReconnect 関数の呼び出しが必要です。

Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: トランザクションが解放されませんでした。 アプリケーションは、既存のトランザクションによって他のスレッドやプロセスがスマート カードと通信できないようにするために、SCardDisconnectSCardReconnect、または SCardReleaseContext 関数を直ちに呼び出す必要があります。

注釈

SCardEndTransaction 関数は、スマート カードおよびリーダー アクセス関数です。 その他のアクセス機能の詳細については、「 スマート カードおよびリーダー アクセス関数」を参照してください。

次の例では、スマート カード トランザクションを終了します。 この例では、lReturn が LONG 型の有効な変数であり、hCard が SCardConnect 関数の以前の呼び出しから受信した有効なハンドルであり、hCard が SCardBeginTransaction 関数の以前の呼び出しに渡されたことを前提としています。


lReturn = SCardEndTransaction(hCard, 
                              SCARD_LEAVE_CARD);
if ( SCARD_S_SUCCESS != lReturn )
    printf("Failed SCardEndTransaction\n");

要件

要件
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー winscard.h
Library Winscard.lib
[DLL] Winscard.dll

こちらもご覧ください

SCardBeginTransaction

SCardConnect