Функция SCardListReaderGroupsA (winscard.h)
Функция SCardListReaderGroups предоставляет список групп читателей , которые ранее были представлены в системе.
Синтаксис
LONG SCardListReaderGroupsA(
[in] SCARDCONTEXT hContext,
[out] LPSTR mszGroups,
[in, out] LPDWORD pcchGroups
);
Параметры
[in] hContext
Дескриптор, определяющий контекст диспетчера ресурсов для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова SCardEstablishContext.
Если для этого параметра задано значение NULL, поиск групп читателей не ограничивается каким-либо контекстом.
[out] mszGroups
Многострочное перечисление групп читателей, определенных в системе и доступных текущему пользователю в текущем терминале. Если это значение равно NULL, SCardListReaderGroups игнорирует длину буфера, указанную в pcchGroups, записывает длину буфера, которая была бы возвращена, если бы этот параметр не имел значение NULL , в pcchGroups, и возвращает код успешного выполнения.
[in, out] pcchGroups
Длина буфера mszGroups в символах и получает фактическую длину многостроковой структуры, включая все конечные символы NULL . Если длина буфера указана как SCARD_AUTOALLOCATE, mszGroups преобразуется в указатель на байтовый указатель и получает адрес блока памяти, содержащего многостроковую структуру. Этот блок памяти должен быть освобожден с помощью SCardFreeMemory.
Возвращаемое значение
Эта функция возвращает различные значения в зависимости от того, успешно или неудачно.
Код возврата | Описание |
---|---|
|
SCARD_S_SUCCESS. |
|
Код ошибки. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты. |
Комментарии
Группа возвращается только в том случае, если она содержит хотя бы одно средство чтения. Сюда входит группа SCard$DefaultReaders. Невозможно вернуть группу SCard$AllReaders , так как она существует только неявно.
Функция SCardListReaderGroups является функцией запроса базы данных. Дополнительные сведения о других функциях запросов базы данных см. в разделе Функции запросов к базе данных смарт-карт.
Примеры
В следующем примере показан список групп читателей.
LPTSTR pmszReaderGroups = NULL;
LPTSTR pReaderGroup;
LONG lReturn;
DWORD cch = SCARD_AUTOALLOCATE;
// Retrieve the list the reader groups.
// hSC was set by a previous call to SCardEstablishContext.
lReturn = SCardListReaderGroups(hSC,
(LPTSTR)&pmszReaderGroups,
&cch );
if ( SCARD_S_SUCCESS != lReturn )
printf("Failed SCardListReaderGroups\n");
else
{
// Do something with the multi string of reader groups.
// Output the values.
// A double-null terminates the list of values.
pReaderGroup = pmszReaderGroups;
while ( '\0' != *pReaderGroup )
{
// Display the value.
printf("%S\n", pReaderGroup );
// Advance to the next value.
pReaderGroup = pReaderGroup + wcslen((wchar_t *) pReaderGroup) + 1;
}
// Remember to free pmszReaderGroups by a call to SCardFreeMemory.
// ...
}
Примечание
Заголовок winscard.h определяет SCardListReaderGroups в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows XP [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 [только классические приложения] |
Целевая платформа | Windows |
Header | winscard.h |
Библиотека | Winscard.lib |
DLL | Winscard.dll |