共用方式為


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: 交易未釋出。 應用程式必須立即呼叫 SCardDisconnectSCardReconnectSCardReleaseContext 函式,以避免現有的交易封鎖其他線程和進程與智慧卡通訊。

備註

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
程式庫 Winscard.lib
Dll Winscard.dll

另請參閱

SCardBeginTransaction

SCardConnect