SCardGetStatusChangeA 函式 (winscard.h)

SCardGetStatusChange 函式會封鎖執行,直到特定讀取器集中卡片的目前可用性變更為止。

呼叫端會提供要由SCARD_READERSTATE數位監視的 讀取器 清單,以及以毫秒為單位 (的最大時間量,) 願意等候其中一個列出的讀取器上發生動作。 請注意,SCardGetStatusChange 使用 rgReaderStatesSCARD_READERSTATE 陣列之 dwCurrentState 成員中的使用者提供值做為讀取器目前狀態的定義。 當可用性變更時,函式會傳回,並適當地填入 rgReaderStatesdwEventState 成員。

語法

LONG SCardGetStatusChangeA(
  [in]      SCARDCONTEXT         hContext,
  [in]      DWORD                dwTimeout,
  [in, out] LPSCARD_READERSTATEA rgReaderStates,
  [in]      DWORD                cReaders
);

參數

[in] hContext

識別 資源管理員內容的句柄。 資源管理員內容是由 先前對 SCardEstablishContext 函式的呼叫所設定。

[in] dwTimeout

等候動作的時間上限,以毫秒為單位。 值為零會導致函式立即傳回。 INFINITE 的值會導致此函式永遠不會逾時。

[in, out] rgReaderStates

SCARD_READERSTATE 結構的陣列,指定要 watch的讀取器,以及接收結果。

若要收到新智慧卡讀取器抵達的通知,請將SCARD_READERSTATE結構的 szReader 成員設定為 “\\?PnP?\Notification“,並將該結構的所有其他成員設定為零。

重要 此陣列中每個結構的每個成員都必須初始化為零,然後視需要設定為特定值。 如果未這麼做,函式會在涉及遠端卡片讀取器的情況下失敗。
 

[in] cReaders

rgReaderStates 陣列中的元素數目。

傳回值

此函式會根據它是否成功或失敗,傳回不同的值。

傳回碼 Description
「成功」
SCARD_S_SUCCESS。
失敗
錯誤碼。 如需詳細資訊,請參閱 智慧卡傳回值

備註

SCardGetStatusChange 函式是智慧卡追蹤函式。 如需其他追蹤函式的詳細資訊,請參閱 智慧卡追蹤函式

範例

如需如何呼叫此函式的資訊,請參閱 SCardLocateCards 中的範例。

注意

winscard.h 標頭會根據 UNICODE 預處理器常數的定義,將 SCardGetStatusChange 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
目標平台 Windows
標頭 winscard.h
程式庫 Winscard.lib
Dll Winscard.dll

另請參閱

SCARD_READERSTATE

SCardCancel

SCardEstablishContext

SCardLocateCards