SCardEndTransaction 関数 (winscard.h)
SCardEndTransaction 関数は、以前に宣言されたトランザクションを完了し、他のアプリケーションがカードとの対話を再開できるようにします。
構文
LONG SCardEndTransaction(
[in] SCARDHANDLE hCard,
[in] DWORD dwDisposition
);
パラメーター
[in] hCard
SCardConnect の以前の呼び出しから取得した参照値。 この値は、 以前の SCardBeginTransaction の呼び出しでも使用されていました。
[in] dwDisposition
接続されているリーダーのカードに対して実行するアクションを閉じます。
値 | 意味 |
---|---|
|
カードを取り出します。 |
|
特別なことはしないでください。 |
|
カードをリセットします。 |
|
カードの電源を切る。 |
戻り値
関数が成功した場合、関数は SCARD_S_SUCCESSを返します。
関数が失敗した場合はエラー コードを返します。 詳細については、「 スマート カードの戻り値」を参照してください。 考えられるエラー コードは次のとおりです。
リターン コード/値 | Description |
---|---|
|
トランザクションがリリースされました。 カードとの今後の通信には、SCardReconnect 関数の呼び出しが必要です。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: トランザクションが解放されませんでした。 アプリケーションは、既存のトランザクションによって他のスレッドやプロセスがスマート カードと通信できないようにするために、SCardDisconnect、SCardReconnect、または 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 |