структура 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
Текущее состояние средства чтения, как показано в приложении. Это поле может принимать любое из следующих значений в сочетании в виде битовой маски.
Ценность | Значение |
---|---|
|
Приложение не знает о текущем состоянии и хотелось бы знать. Использование этого значения приводит к немедленному возврату из служб мониторинга перехода состояния. Это представлено всеми битами, равными нулю. |
|
Приложение не заинтересовано в этом средстве чтения, и оно не должно рассматриваться во время операций мониторинга. Если задано это битовое значение, все остальные биты игнорируются. |
|
Приложение ожидает, что этот читатель недоступен для использования. Если этот бит задан, все следующие биты игнорируются. |
|
Приложение ожидает, что в средстве чтения нет карточки. Если этот бит задан, все следующие биты игнорируются. |
|
Приложение ожидает, что в средстве чтения есть карточка. |
|
Приложение ожидает, что в средстве чтения есть карточка с ATR, которая соответствует одной из целевых карточек. Если этот бит задан, SCARD_STATE_PRESENT предполагается. Этот бит не имеет смысла SCardGetStatusChange за пределами SCARD_STATE_PRESENT. |
|
Приложение ожидает, что карточка в средстве чтения выделяется для монопольного использования другим приложением. Если этот бит задан, SCARD_STATE_PRESENT предполагается. |
|
Приложение ожидает, что карточка в средстве чтения используется одним или несколькими другими приложениями, но может быть подключена к общему режиму. Если этот бит задан, SCARD_STATE_PRESENT предполагается. |
|
Приложение ожидает, что в средстве чтения не отвечает карточка. |
|
Это означает, что карточка в средстве чтения не была выключена. |
dwEventState
Текущее состояние
Ценность | Значение |
---|---|
|
Это средство чтения должно игнорироваться. |
|
Существует разница между состоянием, которое считает приложение, и состояние, известное диспетчером ресурсов. Если этот бит задан, приложение может предположить, что на этом средстве чтения произошло значительное изменение состояния. |
|
Заданное имя средства чтения не распознается диспетчером ресурсов. Если этот бит задан, SCARD_STATE_CHANGED и SCARD_STATE_IGNORE также будут заданы. |
|
Фактическое состояние этого средства чтения недоступно. Если этот бит задан, все следующие биты понятны. |
|
В средстве чтения нет карточки. Если этот бит задан, все следующие биты будут понятны. |
|
В средстве чтения есть карточка. |
|
В средстве чтения есть карточка с ATR, соответствующая одной из целевых карточек. Если этот бит задан, SCARD_STATE_PRESENT также будет задан. Этот бит возвращается только в функции SCardLocateCards. |
|
Карточка в средстве чтения выделяется для монопольного использования другим приложением. Если этот бит задан, SCARD_STATE_PRESENT также будет задан. |
|
Карточка в средстве чтения используется одним или несколькими другими приложениями, но может быть подключена к общему режиму. Если этот бит задан, SCARD_STATE_PRESENT также будет задан. |
|
В средстве чтения отсутствует ответная карточка. |
|
Это означает, что карточка в средстве чтения не была выключена. |
cbAtr
Количество байтов в возвращенном ATR.
rgbAtr[36]
ATR вставленной карточки с дополнительными байтами выравнивания.
Замечания
Заметка
Заголовок winscard.h определяет SCARD_READERSTATE как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP [только классические приложения] |
минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
заголовка | winscard.h |