Метод ISCardCmd::BuildCmd
[Метод BuildCmd доступен для использования в операционных системах, указанных в разделе Требования. Он недоступен для использования в Windows Server 2003 с пакетом обновления 1 (SP1) и более поздних версиях, Windows Vista, Windows Server 2008 и последующих версиях операционной системы. Модули смарт-карт предоставляют аналогичные функции.]
Метод BuildCmd создает допустимую единицу данных протокола приложения команд (APDU) для передачи в смарт-карта.
Синтаксис
HRESULT BuildCmd(
[in] BYTE byClassId,
[in] BYTE byInsId,
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pbyData,
[in] LONG *p1Le
);
Параметры
-
byClassId [in]
-
Идентификатор класса команд.
-
byInsId [in]
-
Идентификатор инструкции команды.
-
byP1 [in]
-
Первый параметр команды.
-
byP2 [in]
-
Второй параметр команды.
-
pbyData [in]
-
Указатель на часть данных команды.
-
p1Le [in]
-
Указатель на целое число LONG, содержащее ожидаемую длину возвращаемых данных.
Возвращаемое значение
Метод возвращает одно из следующих возможных значений.
Код возврата | Описание |
---|---|
|
Operation completed successfully (Операция выполнена успешно). |
|
Один из параметров недопустим. |
|
Был передан плохой указатель. |
|
Недостаточно памяти. |
Комментарии
Чтобы инкапсулировать команду в другую команду, вызовите Команду Encapsulate.
Список всех методов, предоставляемых этим интерфейсом, см. в разделе ISCardCmd.
В дополнение к приведенным выше кодам com-ошибок этот интерфейс может возвращать код ошибки смарт-карта, если для выполнения запроса была вызвана функция смарт-карта. Дополнительные сведения см. в разделе Возвращаемые значения смарт-карты.
Примеры
В следующем примере показано, как создать команду APDU. В примере предполагается, что pISCardCmd является допустимым указателем на экземпляр интерфейса ISCardCmd , а pIByteRequest является допустимым указателем на экземпляр интерфейса IByteBuffer , инициализированный с помощью предыдущего вызова метода IByteBuffer::Initialize .
LONG lLe = 0;
HRESULT hr;
hr = pISCardCmd->BuildCmd(0x00, // Some cards prefer 0xC0
0xa4, // 'Select File'
0x00,
0x00,
pIByteRequest,
&lLe);
if (FAILED(hr))
{
printf("Failed ISCardCmd::BuildCmd\n");
// Take other error handling action as needed.
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows XP [только классические приложения] |
Минимальная версия сервера |
Windows Server 2003 [только классические приложения] |
Окончание поддержки клиентов |
Windows XP |
Прекращение поддержки сервера |
Windows Server 2003 |
Заголовок |
|
Библиотека типов |
|
DLL |
|
IID |
IID_ISCardCmd определяется как D5778AE3-43DE-11D0-9171-00AA00C18068 |
См. также раздел