Método ISCardCmd::get_ApduReply
[El método get_ApduReply 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 get_ApduReply recupera el APDU de respuesta, colocándolo en un búfer de bytes específico. La respuesta puede ser NULL si no se ha realizado ninguna transacción en el comando APDU.
Sintaxis
HRESULT get_ApduReply(
[out] LPBYTEBUFFER *ppReplyApdu
);
Parámetros
-
ppReplyApdu [out]
-
Puntero al búfer de bytes (asignado a través de un objeto IStream ) que contiene el mensaje de respuesta apDU al devolver.
Valor devuelto
El método devuelve uno de los siguientes valores posibles.
Código devuelto | Descripción |
---|---|
|
Operación completada correctamente. |
|
El parámetro ppReplyApdu no es válido. |
|
Se pasó un puntero incorrecto en ppReplyApdu. |
|
Memoria insuficiente |
Observaciones
Para determinar la longitud de la respuesta de APDU, llame a get_ApduReplyLength.
Para establecer una nueva APDU de respuesta, llame a put_ApduReply.
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 recuperar datos de respuesta. En el ejemplo se supone que lLe es una variable de tipo LONG cuyo valor se estableció mediante una llamada anterior al método ISCardCmd::get_ApduReplyLength , que pIByteReply es un puntero válido a una instancia de la interfaz IByteBuffer y que pISCardCmd es un puntero válido a una instancia de la interfaz ISCardCmd .
HRESULT hr;
if (lLe > 0)
{
// Get reply data if available.
hr = pISCardCmd->get_ApduReply(&pIByteReply);
if (FAILED(hr))
{
printf("Failed ISCardCmd::get_ApduReply.\n");
// Take other error handling action as needed.
}
else
{
BYTE byReplyBytes[256];
LONG lBytesRead;
hr = pIByteReply->Read(byReplyBytes, lLe, &lBytesRead);
if (FAILED(hr))
{
printf("Failed IByteBuffer::Read.\n");
// Take other error handling action as needed.
}
// Use the bytes in byReplyBytes 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 |
Vea también