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


Метод ISCard::get_Atr

[Метод get_Atr доступен для использования в операционных системах, указанных в разделе Требования. Модули смарт-карт предоставляют аналогичные функциональные возможности.]

Метод get_Atr извлекает строку ATRсмарт-карта.

Синтаксис

HRESULT get_Atr(
  [out] LPBYTEBUFFER *ppAtr
);

Параметры

ppAtr [out]

Указатель на буфер байтов в виде IStream , который будет содержать строку ATR при возврате.

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

Метод возвращает одно из следующих возможных значений.

Код возврата Описание
S_OK
Operation completed successfully (Операция выполнена успешно).
E_INVALIDARG
Недопустимый параметр ppAtr .
E_POINTER
В ppAtr был передан недопустимый указатель.
E_OUTOFMEMORY
Память для удовлетворения запроса недоступна.

 

Комментарии

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

Примеры

В следующем примере показано получение строки ATR из смарт-карта.

// Retrieve the ATR.
// pISCard is a pointer to a previously instantiated ISCard.
// pAtr is a pointer to a previously instantiated IByteBuffer.
hr = pISCard->get_Atr(&pAtr);
if (FAILED(hr))
{
    printf("Failed get_Atr\n");
    // Take other error handling action.
}
// Success, you can now use IByteBuffer::Read to access ATR bytes.
BYTE  byAtr[32];
   long  lBytesRead, i;
   // Read the ATR string into a byte array.
   hr = pAtr->Read(byAtr, 32, &lBytesRead);
   // Use the ATR value. (This example merely displays the bytes.)
   for ( i = 0; i < lBytesRead; i++)
       printf("%c", *(byAtr + i));
   printf("\n");

Требования

Требование Значение
Минимальная версия клиента
Windows XP [только классические приложения]
Минимальная версия сервера
Windows Server 2003 [только классические приложения]
Окончание поддержки клиентов
Windows XP
Окончание поддержки сервера
Windows Server 2003
Заголовок
Scardmgr.h
Библиотека типов
Scardmgr.tlb
DLL
Scardssp.dll
IID
IID_ISCard определяется как 1461AAC3-6810-11D0-918F-00AA00C18068

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

get_CardHandle

get_Context

get_Protocol

get_Status

ISCard

IByteBuffer::Read