Metode ISCardCmd::get_ApduReply
[Metode get_ApduReply tersedia untuk digunakan dalam sistem operasi yang ditentukan di bagian Persyaratan. Ini tidak tersedia untuk digunakan di Windows Server 2003 dengan Paket Layanan 1 (SP1) dan yang lebih baru, Windows Vista, Windows Server 2008, dan versi sistem operasi berikutnya. Modul Kartu Pintar menyediakan fungsionalitas serupa.]
Metode get_ApduReply mengambil APDU balasan, menempatkannya dalam buffer byte tertentu. Balasan mungkin NULL jika tidak ada transaksi yang dilakukan pada perintah APDU.
Sintaks
HRESULT get_ApduReply(
[out] LPBYTEBUFFER *ppReplyApdu
);
Parameter
-
ppReplyApdu [out]
-
Arahkan ke buffer byte (dipetakan melalui objek IStream ) yang berisi pesan balasan APDU saat dikembalikan.
Nilai kembali
Metode mengembalikan salah satu nilai yang mungkin berikut ini.
Mengembalikan kode | Deskripsi |
---|---|
|
Operasi selesai dengan sukses. |
|
Parameter ppReplyApdu tidak valid. |
|
Pointer buruk diteruskan di ppReplyApdu. |
|
Kehabisan memori. |
Keterangan
Untuk menentukan panjang balasan APDU, panggil get_ApduReplyLength.
Untuk mengatur APDU balasan baru, panggil put_ApduReply.
Untuk daftar semua metode yang disediakan oleh antarmuka ini, lihat ISCardCmd.
Selain kode kesalahan COM yang tercantum di atas, antarmuka ini dapat mengembalikan kode kesalahan kartu pintar jika fungsi kartu pintar dipanggil untuk menyelesaikan permintaan. Untuk informasi selengkapnya, lihat Nilai Pengembalian Kartu Pintar.
Contoh
Contoh berikut menunjukkan cara mengambil data balasan. Contoh mengasumsikan bahwa lLe adalah variabel jenis LONG yang nilainya diatur oleh panggilan sebelumnya ke metode ISCardCmd::get_ApduReplyLength , bahwa pIByteReply adalah penunjuk yang valid ke instans antarmuka IByteBuffer , dan bahwa pISCardCmd adalah penunjuk yang valid ke instans antarmuka 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.
}
}
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung |
Windows XP [khusus aplikasi desktop] |
Server minimum yang didukung |
Windows Server 2003 [hanya aplikasi desktop] |
Akhir dukungan klien |
Windows XP |
Akhir dukungan server |
Windows Server 2003 |
Header |
|
Pustaka jenis |
|
DLL |
|
IID |
IID_ISCardCmd didefinisikan sebagai D5778AE3-43DE-11D0-9171-00AA00C18068 |
Lihat juga