ISCardCmd::get_ApduReply-Methode
[Die get_ApduReply-Methode ist für die Verwendung in den Betriebssystemen verfügbar, die im Abschnitt "Anforderungen" angegeben sind. Es ist nicht für die Verwendung in Windows Server 2003 mit Service Pack 1 (SP1) und höher, Windows Vista, Windows Server 2008 und nachfolgenden Versionen des Betriebssystems verfügbar. Die Smartcardmodule bieten ähnliche Funktionen.]
Die get_ApduReply-Methode ruft die Antwort-APDU ab und platziert sie in einem bestimmten Bytepuffer. Die Antwort kann NULL sein, wenn keine Transaktion für den Befehl APDU ausgeführt wurde.
Syntax
HRESULT get_ApduReply(
[out] LPBYTEBUFFER *ppReplyApdu
);
Parameter
-
ppReplyApdu [out]
-
Zeiger auf den Bytepuffer (zugeordnet über ein IStream-Objekt ), der die APDU-Antwortnachricht bei der Rückgabe enthält.
Rückgabewert
Die -Methode gibt einen der folgenden möglichen Werte zurück.
Rückgabecode | BESCHREIBUNG |
---|---|
|
Operation erfolgreich abgeschlossen. |
|
Der ppReplyApdu-Parameter ist ungültig. |
|
Ein fehlerhafter Zeiger wurde in ppReplyApdu übergeben. |
|
Nicht genügend Arbeitsspeicher. |
Bemerkungen
Um die Länge der APDU-Antwort zu bestimmen, rufen Sie get_ApduReplyLength auf.
Um eine neue Antwort-APDU festzulegen, rufen Sie put_ApduReply auf.
Eine Liste aller von dieser Schnittstelle bereitgestellten Methoden finden Sie unter ISCardCmd.
Zusätzlich zu den oben aufgeführten COM-Fehlercodes gibt diese Schnittstelle möglicherweise einen Intelligenten Karte Fehlercode zurück, wenn eine Smart Karte-Funktion aufgerufen wurde, um die Anforderung abzuschließen. Weitere Informationen finden Sie unter Smartcard-Rückgabewerte.
Beispiele
Das folgende Beispiel zeigt, wie Antwortdaten abgerufen werden. Im Beispiel wird davon ausgegangen, dass lLe eine Variable vom Typ LONG ist, deren Wert durch einen vorherigen Aufruf der ISCardCmd::get_ApduReplyLength-Methode festgelegt wurde, dass pIByteReply ein gültiger Zeiger auf einen instance der IByteBuffer-Schnittstelle ist und dass pISCardCmd ein gültiger Zeiger auf eine instance der ISCardCmd-Schnittstelle ist.
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.
}
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows XP [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2003 [nur Desktop-Apps] |
Ende des Supports (Client) |
Windows XP |
Ende des Supports (Server) |
Windows Server 2003 |
Header |
|
Typbibliothek |
|
DLL |
|
IID |
IID_ISCardCmd ist definiert als D5778AE3-43DE-11D0-9171-00AA00C18068 |
Weitere Informationen