ISCardCmd::get _ ApduReply-Methode
[Die get _ ApduReply-Methode ist für die Verwendung in den Im Abschnitt Anforderungen angegebenen Betriebssystemen verfügbar. 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 abund platziert sie in einem bestimmten Bytepuffer. Die Antwort kann NULL sein, wenn keine Transaktion für die Befehls-APDU ausgeführt wurde.
Syntax
HRESULT get_ApduReply(
[out] LPBYTEBUFFER *ppReplyApdu
);
Parameter
-
ppReplyApdu [ out]
-
Zeiger auf den Bytepuffer (zugeordnet durch 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
Rufen Sie get _ ApduReplyLengthauf, um die Länge der APDU-Antwort zu bestimmen.
Rufen Sie zum Festlegen einer neuen Antwort-APDU 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 Smartcard-Fehlercode zurück, wenn eine Smartcardfunktion aufgerufen wurde, um die Anforderung zu erfüllen. 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 eine Instanz der IByteBuffer-Schnittstelle ist und dass pISCardCmd ein gültiger Zeiger auf eine Instanz 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.
}
}
Requirements (Anforderungen)
| Anforderung | Wert |
|---|---|
| Unterstützte Mindestversion (Client) |
Windows Nur [ XP-Desktop-Apps] |
| Unterstützte Mindestversion (Server) |
Windows Nur Server [ 2003-Desktop-Apps] |
| Ende des Supports (Client) |
Windows XP |
| Ende des Supports (Server) |
Windows Server 2003 |
| Header |
|
| Typbibliothek |
|
| DLL |
|
| IID |
IID _ ISCardCmd ist als D5778AE3-43DE-11D0-9171-00AA00C18068 definiert. |