Método ISCardCmd::BuildCmd
[El método BuildCmd está disponible para su uso en los sistemas operativos especificados en la sección Requisitos. No está disponible para su uso en Windows Server 2003 con Service Pack 1 (SP1) y versiones posteriores, Windows Vista, Windows Server 2008 y versiones posteriores del sistema operativo. Los módulos de tarjeta inteligente proporcionan una funcionalidad similar.]
El método BuildCmd construye una unidad de datos de protocolo de aplicación de comandos (APDU) válida para la transmisión a una tarjeta inteligente.
Sintaxis
HRESULT BuildCmd(
[in] BYTE byClassId,
[in] BYTE byInsId,
[in] BYTE byP1,
[in] BYTE byP2,
[in] LPBYTEBUFFER pbyData,
[in] LONG *p1Le
);
Parámetros
-
byClassId [in]
-
Identificador de clase de comando.
-
byInsId [in]
-
Identificador de instrucción de comando.
-
byP1 [in]
-
Primer parámetro del comando.
-
byP2 [in]
-
Segundo parámetro del comando.
-
pbyData [in]
-
Puntero a la parte de datos del comando.
-
p1Le [in]
-
Puntero a un entero LONG que contiene la longitud esperada de los datos devueltos.
Valor devuelto
El método devuelve uno de los siguientes valores posibles.
Código devuelto | Descripción |
---|---|
|
Operación completada correctamente. |
|
Uno de los parámetros no es válido. |
|
Se pasó un puntero incorrecto. |
|
Memoria insuficiente |
Comentarios
Para encapsular el comando en otro comando, llame a Encapsulate.
Para obtener una lista de todos los métodos proporcionados por esta interfaz, vea ISCardCmd.
Además de los códigos de error COM enumerados anteriormente, esta interfaz puede devolver un código de error de tarjeta inteligente si se llamó a una función de tarjeta inteligente para completar la solicitud. Para obtener más información, consulte Valores devueltos de tarjeta inteligente.
Ejemplos
En el ejemplo siguiente se muestra cómo construir un COMANDO APDU. En el ejemplo se supone que pISCardCmd es un puntero válido a una instancia de la interfaz ISCardCmd y que pIByteRequest es un puntero válido a una instancia de la interfaz IByteBuffer inicializada con una llamada anterior al método 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.
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible |
Windows XP [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2003 [solo aplicaciones de escritorio] |
Fin de compatibilidad de cliente |
Windows XP |
Fin de compatibilidad de servidor |
Windows Server 2003 |
Encabezado |
|
Biblioteca de tipos |
|
Archivo DLL |
|
IID |
IID_ISCardCmd se define como D5778AE3-43DE-11D0-9171-00AA00C18068 |
Consulte también