Функция SCardListReaderGroupsW (winscard.h)
Функция SCardListReaderGroups
Синтаксис
LONG SCardListReaderGroupsW(
[in] SCARDCONTEXT hContext,
[out] LPWSTR mszGroups,
[in, out] LPDWORD pcchGroups
);
Параметры
[in] hContext
Дескриптор, определяющий контекст диспетчера ресурсов для запроса. Контекст диспетчера ресурсов можно задать с помощью предыдущего вызова SCardEstablishContext.
Если для этого параметра задано значение NULL, поиск групп чтения не ограничивается ни одним контекстом.
[out] mszGroups
Многострочное перечисление групп читателей, определенных в системе, и доступное текущему пользователю в текущем терминале. Если это значение равно NULL, SCardListReaderGroups игнорирует длину буфера, указанную в pcchGroups, записывает длину буфера, который был бы возвращен, если этот параметр не был NULL в pcchGroupsи возвращает код успешного выполнения.
[in, out] pcchGroups
Длина буфера
Возвращаемое значение
Эта функция возвращает разные значения в зависимости от того, выполнена ли она успешно или завершается сбоем.
Возвращаемый код | Описание |
---|---|
|
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 [только классические приложения] |
целевая платформа | Виндоус |
заголовка | winscard.h |
библиотеки |
Winscard.lib |
DLL | Winscard.dll |