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


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

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

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

Синтаксис

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

Параметры

[in] hContext

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

[in] dwTimeout

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

[in, out] rgReaderStates

Массив SCARD_READERSTATE структур, указывающих читателей, которые должны наблюдать, и получает результат.

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

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

[in] cReaders

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

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

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

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

Замечания

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

Примеры

Сведения о вызове этой функции см. в примере SCardLocateCards.

Заметка

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

Требования

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

См. также

SCARD_READERSTATE

SCardCancel

SCardEstablishContext

SCardLocateCards