次の方法で共有


SCardBeginTransaction 関数 (winscard.h)

SCardBeginTransaction 関数はトランザクションを開始します

関数は、開始する前に、他のすべてのトランザクションの完了を待機します。 トランザクションが開始されると、トランザクションの進行中に、他のすべてのアプリケーションがスマート カードへのアクセスをブロックされます。

構文

LONG SCardBeginTransaction(
  [in] SCARDHANDLE hCard
);

パラメーター

[in] hCard

SCardConnect の以前の呼び出しから取得した参照値。

戻り値

関数が成功すると、 SCARD_S_SUCCESSが返されます。

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

別のプロセスまたはスレッドがカードをリセットした場合は、SCARD_W_RESET_CARDが期待どおりに返されます。

Windows Server 2008 R2、Windows 7、Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この関数は、別のプロセスまたはスレッドがカードをリセットした場合でも、SCARD_S_SUCCESSを返します。 カードがリセットされたかどうかを確認するには、この関数を呼び出した直後に SCardStatus 関数を呼び出します。

注釈

トランザクションがカードで 5 秒以上保持され、そのカードで操作が行われなかった場合、カードはリセットされます。 トランザクションされるカードでスマート カードおよびリーダー アクセス関数またはダイレクト カード アクセス関数を呼び出すと、トランザクションを引き続き使用できるようにタイマーがリセットされます。

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

次の例では、スマート カード トランザクションを開始する方法を示します。 この例では、 lReturnLONG 型の既存の変数であり、hCardSCardConnect の以前の呼び出しから受信した有効なハンドルであると想定しています。


lReturn = SCardBeginTransaction( hCard );
if ( SCARD_S_SUCCESS != lReturn )
 printf("Failed SCardBeginTransaction\n");

要件

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

こちらもご覧ください

SCardConnect

SCardEndTransaction