次の方法で共有


SCARD_READERSTATEA構造体 (winscard.h)

SCARD_READERSTATE 構造は、リーダー内で スマートカードを追跡するための関数によって使用されます。

構文

typedef struct {
  LPCSTR szReader;
  LPVOID pvUserData;
  DWORD  dwCurrentState;
  DWORD  dwEventState;
  DWORD  cbAtr;
  BYTE   rgbAtr[36];
} SCARD_READERSTATEA, *PSCARD_READERSTATEA, *LPSCARD_READERSTATEA;

メンバーズ

szReader

監視対象のリーダーの名前へのポインター。

このメンバーの値を "\\? に設定します。PnP?\Notification" と他のすべてのメンバーの値をゼロにして、新しいスマート カード リーダーの到着を通知します。

pvUserData

スマート カード サブシステムでは使用されません。 このメンバーは、アプリケーションによって使用されます。

dwCurrentState

アプリケーションで見られるように、リーダーの現在の 状態。 このフィールドは、次のいずれかの値を組み合わせてビットマスクとして受け取ることができます。

価値 意味
SCARD_STATE_UNAWARE
アプリケーションは現在の 状態を認識せずに、知りたいと考えます。 この値を使用すると、状態遷移監視サービスからすぐに戻ります。 これは、0 に設定されたすべてのビットで表されます。
SCARD_STATE_IGNORE
アプリケーションはこのリーダーに関心を持たず、監視操作中は考慮しないでください。 このビット値が設定されている場合、他のすべてのビットは無視されます。
SCARD_STATE_UNAVAILABLE
アプリケーションは、このリーダーが使用できないと想定しています。 このビットが設定されている場合、次のすべてのビットは無視されます。
SCARD_STATE_EMPTY
アプリケーションは、リーダーにカードがないことを想定しています。 このビットが設定されている場合、次のすべてのビットは無視されます。
SCARD_STATE_PRESENT
アプリケーションは、リーダーにカードがあることを想定しています。
SCARD_STATE_ATRMATCH
アプリケーションは、ターゲット カードの 1 つに一致する ATR を持つカードがリーダーに存在することを想定しています。 このビットが設定されている場合は、SCARD_STATE_PRESENTが想定されます。 このビットは、SCARD_STATE_PRESENTを超えて SCardGetStatusChange を する意味はありません。
SCARD_STATE_EXCLUSIVE
アプリケーションは、リーダー内のカードが別のアプリケーションによって排他的に使用されるように割り当てられていることを想定しています。 このビットが設定されている場合は、SCARD_STATE_PRESENTが想定されます。
SCARD_STATE_INUSE
アプリケーションは、リーダー内のカードが 1 つ以上の他のアプリケーションで使用されていることを想定していますが、共有モードで接続されている可能性があります。 このビットが設定されている場合は、SCARD_STATE_PRESENTが想定されます。
SCARD_STATE_MUTE
アプリケーションは、リーダーに応答しないカードがあることを想定しています。
SCARD_STATE_UNPOWERED
これは、リーダーのカードの電源が入っていないことを意味します。

dwEventState

リーダーの現在の 状態 。リソース マネージャースマート カードで認識されます。 このフィールドは、次のいずれかの値を組み合わせてビットマスクとして受け取ることができます。

価値 意味
SCARD_STATE_IGNORE
このリーダーは無視する必要があります。
SCARD_STATE_CHANGED
アプリケーションによって認識される状態と、リソース マネージャーによって認識される状態には違いがあります。 このビットが設定されている場合、アプリケーションでは、このリーダーで重大な状態変更が発生したと想定される場合があります。
SCARD_STATE_UNKNOWN
指定されたリーダー名は、リソース マネージャーによって認識されません。 このビットが設定されている場合は、SCARD_STATE_CHANGEDとSCARD_STATE_IGNOREも設定されます。
SCARD_STATE_UNAVAILABLE
このリーダーの実際の状態は使用できません。 このビットが設定されている場合、次のすべてのビットがクリアされます。
SCARD_STATE_EMPTY
リーダーにカードがありません。 このビットが設定されている場合、次のすべてのビットがクリアされます。
SCARD_STATE_PRESENT
リーダーにカードがあります。
SCARD_STATE_ATRMATCH
リーダーには、ターゲット カードの 1 つに一致する ATR を持つカードがあります。 このビットが設定されている場合は、SCARD_STATE_PRESENTも設定されます。 このビットは、SCardLocateCards 関数でのみ返されます。
SCARD_STATE_EXCLUSIVE
リーダーのカードは、別のアプリケーションで排他的に使用するために割り当てられます。 このビットが設定されている場合は、SCARD_STATE_PRESENTも設定されます。
SCARD_STATE_INUSE
リーダーのカードは 1 つ以上の他のアプリケーションで使用されていますが、共有モードで接続されている可能性があります。 このビットが設定されている場合は、SCARD_STATE_PRESENTも設定されます。
SCARD_STATE_MUTE
リーダーに応答しないカードがあります。
SCARD_STATE_UNPOWERED
これは、リーダーのカードの電源が入っていないことを意味します。

cbAtr

返された ATR 内のバイト数。

rgbAtr[36]

挿入されたカードの ATR(追加のアラインメント バイトを含む)。

備考

手記

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

必要条件

要件 価値
サポートされる最小クライアント Windows XP [デスクトップ アプリのみ]
サポートされる最小サーバー Windows Server 2003 [デスクトップ アプリのみ]
ヘッダー winscard.h

関連項目

SCardGetStatusChange

SCardLocateCards