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


Функция SCardGetStatusChangeA (winscard.h)

Функция SCardGetStatusChange блокирует выполнение до изменения текущей доступности карточек в определенном наборе средств чтения.

Вызывающий объект предоставляет список модулей чтения , которые будут отслеживаться массивом SCARD_READERSTATE и максимальным количеством времени (в миллисекундах), в течение которого он готов ожидать выполнения действия с одним из перечисленных читателей. Обратите внимание, что SCardGetStatusChange использует предоставленное пользователем значение в членах dwCurrentState массива rgReaderStatesSCARD_READERSTATE в качестве определения текущего состояния модулей чтения. Функция возвращается при изменении доступности, заполнив члены dwEventStatergReaderStates соответствующим образом.

Синтаксис

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

Параметры

[in] hContext

Дескриптор, определяющий контекст resource manager. Контекст диспетчера ресурсов задается при предыдущем вызове функции SCardEstablishContext .

[in] dwTimeout

Максимальное время ожидания действия (в миллисекундах). Нулевое значение приводит к немедленному возврату функции. Значение INFINITE приводит к тому, что время ожидания этой функции никогда не истекает.

[in, out] rgReaderStates

Массив SCARD_READERSTATE структур, определяющих модули чтения для watch и получающих результат.

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

Важно Каждый элемент каждой структуры в этом массиве должен быть инициализирован нулевым, а затем при необходимости задать определенные значения. Если этого не сделать, функция завершится сбоем в ситуациях, связанных с удаленными карта средствами чтения.
 

[in] cReaders

Количество элементов в массиве rgReaderStates .

Возвращаемое значение

Эта функция возвращает различные значения в зависимости от того, успешно или неудачно.

Код возврата Описание
Успешно
SCARD_S_SUCCESS.
Failure
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.

Комментарии

Функция SCardGetStatusChange — это интеллектуальная функция отслеживания карта. Дополнительные сведения о других функциях отслеживания см. в разделе Функции отслеживания смарт-карт.

Примеры

Сведения о том, как вызвать эту функцию, см. в примере в разделе SCardLocateCards.

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winscard.h
Библиотека Winscard.lib
DLL Winscard.dll

См. также раздел

SCARD_READERSTATE

SCardCancel

SCardEstablishContext

SCardLocateCards