次の方法で共有


SCardGetStatusChangeA 関数 (winscard.h)

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

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

構文

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

パラメーター

[in] hContext

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

[in] dwTimeout

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

[in, out] rgReaderStates

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

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

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

[in] cReaders

rgReaderStates 配列内の要素の数。

戻り値

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

リターン コード 形容
成功 の
SCARD_S_SUCCESS。
エラーの
エラー コード。 詳細については、「スマート カードの戻り値 を参照してください。

備考

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

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

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winscard.h
ライブラリ Winscard.lib
DLL Winscard.dll

関連項目

SCARD_READERSTATE

SCardCancel

SCardEstablishContext

SCardLocateCards