SCardGetStatusChangeW 関数 (winscard.h)

SCardGetStatusChange 関数は、特定のリーダー セット内のカードの現在の可用性が変更されるまで実行をブロックします。

呼び出し元は、SCARD_READERSTATE配列によって監視される リーダー の一覧と、一覧表示されているリーダーのいずれかでアクションが発生するのを待機する最大時間 (ミリ秒単位) を提供します。 SCardGetStatusChange では、rgReaderStatesSCARD_READERSTATE配列の dwCurrentState メンバーのユーザー指定値がリーダーの現在の状態の定義として使用されることに注意してください。 この関数は、rgReaderStatesdwEventState メンバーを適切に入力して、可用性に変更があった場合に を返します。

構文

LONG SCardGetStatusChangeW(
  [in]      SCARDCONTEXT         hContext,
  [in]      DWORD                dwTimeout,
  [in, out] LPSCARD_READERSTATEW rgReaderStates,
  [in]      DWORD                cReaders
);

パラメーター

[in] hContext

リソース マネージャー コンテキストを識別するハンドル。 リソース マネージャー コンテキストは、 SCardEstablishContext 関数の以前の呼び出しによって設定されます。

[in] dwTimeout

アクションを待機する最大時間 (ミリ秒単位)。 値が 0 の場合、関数はすぐに返されます。 INFINITE の値を指定すると、この関数はタイムアウトしません。

[in, out] rgReaderStates

watchするリーダーを指定し、結果を受け取るSCARD_READERSTATE構造体の配列。

新しいスマート カード リーダーの到着を通知するには、SCARD_READERSTATE構造体の szReader メンバーを "\\? に設定します。PnP?\Notification"。その構造体の他のすべてのメンバーを 0 に設定します。

大事な この配列内の各構造体の各メンバーは 0 に初期化し、必要に応じて特定の値に設定する必要があります。 これが行われなければ、リモート カード リーダーが関係する状況で関数は失敗します。
 

[in] cReaders

rgReaderStates 配列内の要素の数。

戻り値

この関数は、成功するか失敗したかに応じて異なる値を返します。

リターン コード 説明
Success
SCARD_S_SUCCESS。
障害
エラー コード。 詳細については、「 スマート カードの戻り値」を参照してください。

解説

SCardGetStatusChange 関数はスマート カード追跡関数です。 その他の追跡関数の詳細については、「 スマート カード追跡関数」を参照してください。

この関数を呼び出す方法については、 SCardLocateCards の例を参照してください。

注意

winscard.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして SCardGetStatusChange を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

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

関連項目

SCARD_READERSTATE

SCardCancel

SCardEstablishContext

SCardLocateCards