Поделиться через


структура SCARD_READERSTATEW (winscard.h)

Структура SCARD_READERSTATE используется функциями для отслеживания смарт-карт в средства чтения.

Синтаксис

typedef struct {
  LPCWSTR szReader;
  LPVOID  pvUserData;
  DWORD   dwCurrentState;
  DWORD   dwEventState;
  DWORD   cbAtr;
  BYTE    rgbAtr[36];
} SCARD_READERSTATEW, *PSCARD_READERSTATEW, *LPSCARD_READERSTATEW;

Члены

szReader

Указатель на имя отслеживаемого средства чтения.

Задайте для этого элемента значение "\\? PnP?\Notification" и значения всех остальных членов, равные нулю, чтобы получать уведомления о поступлении нового средства чтения смарт-карт.

pvUserData

Не используется подсистемой смарт-карт . Этот элемент используется приложением.

dwCurrentState

Текущее состояние средства чтения, как показано в приложении. Это поле может принимать любое из следующих значений в сочетании в виде битовой маски.

Ценность Значение
SCARD_STATE_UNAWARE
Приложение не знает о текущем состоянии и хотелось бы знать. Использование этого значения приводит к немедленному возврату из служб мониторинга перехода состояния. Это представлено всеми битами, равными нулю.
SCARD_STATE_IGNORE
Приложение не заинтересовано в этом средстве чтения, и оно не должно рассматриваться во время операций мониторинга. Если задано это битовое значение, все остальные биты игнорируются.
SCARD_STATE_UNAVAILABLE
Приложение ожидает, что этот читатель недоступен для использования. Если этот бит задан, все следующие биты игнорируются.
SCARD_STATE_EMPTY
Приложение ожидает, что в средстве чтения нет карточки. Если этот бит задан, все следующие биты игнорируются.
SCARD_STATE_PRESENT
Приложение ожидает, что в средстве чтения есть карточка.
SCARD_STATE_ATRMATCH
Приложение ожидает, что в средстве чтения есть карточка с ATR, которая соответствует одной из целевых карточек. Если этот бит задан, SCARD_STATE_PRESENT предполагается. Этот бит не имеет смысла SCardGetStatusChange за пределами SCARD_STATE_PRESENT.
SCARD_STATE_EXCLUSIVE
Приложение ожидает, что карточка в средстве чтения выделяется для монопольного использования другим приложением. Если этот бит задан, SCARD_STATE_PRESENT предполагается.
SCARD_STATE_INUSE
Приложение ожидает, что карточка в средстве чтения используется одним или несколькими другими приложениями, но может быть подключена к общему режиму. Если этот бит задан, 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
В средстве чтения есть карточка с ATR, соответствующая одной из целевых карточек. Если этот бит задан, SCARD_STATE_PRESENT также будет задан. Этот бит возвращается только в функции SCardLocateCards.
SCARD_STATE_EXCLUSIVE
Карточка в средстве чтения выделяется для монопольного использования другим приложением. Если этот бит задан, SCARD_STATE_PRESENT также будет задан.
SCARD_STATE_INUSE
Карточка в средстве чтения используется одним или несколькими другими приложениями, но может быть подключена к общему режиму. Если этот бит задан, SCARD_STATE_PRESENT также будет задан.
SCARD_STATE_MUTE
В средстве чтения отсутствует ответная карточка.
SCARD_STATE_UNPOWERED
Это означает, что карточка в средстве чтения не была выключена.

cbAtr

Количество байтов в возвращенном ATR.

rgbAtr[36]

ATR вставленной карточки с дополнительными байтами выравнивания.

Замечания

Заметка

Заголовок winscard.h определяет SCARD_READERSTATE как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows XP [только классические приложения]
минимальный поддерживаемый сервер Windows Server 2003 [только классические приложения]
заголовка winscard.h

См. также

SCardGetStatusChange

SCardLocateCards