다음을 통해 공유


ISCardCmd::get_ApduReply 메서드

[ get_ApduReply 메서드는 요구 사항 섹션에 지정된 운영 체제에서 사용할 수 있습니다. Windows Server 2003 SP1(서비스 팩 1) 이상, Windows Vista, Windows Server 2008 및 이후 버전의 운영 체제에서는 사용할 수 없습니다. 스마트 카드 모듈은 비슷한 기능을 제공합니다.]

get_ApduReply 메서드는 회신 APDU를 검색하여 특정 바이트 버퍼에 배치합니다. APDU 명령에서 트랜잭션이 수행되지 않은 경우 회신은 NULL일 수 있습니다.

구문

HRESULT get_ApduReply(
  [out] LPBYTEBUFFER *ppReplyApdu
);

매개 변수

ppReplyApdu [out]

반환될 때 APDU 회신 메시지를 포함하는 바이트 버퍼( IStream 개체를 통해 매핑됨)에 대한 포인터입니다.

반환 값

메서드는 다음 가능한 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
작업이 완료되었습니다.
E_INVALIDARG
ppReplyApdu 매개 변수가 잘못되었습니다.
E_POINTER
ppReplyApdu에서 잘못된 포인터가 전달되었습니다.
E_OUTOFMEMORY
메모리가 부족합니다.

 

설명

APDU 회신의 길이를 확인하려면 get_ApduReplyLength 호출합니다.

새 회신 APDU를 설정하려면 put_ApduReply 호출합니다.

이 인터페이스에서 제공하는 모든 메서드 목록은 ISCardCmd를 참조하세요.

위에 나열된 COM 오류 코드 외에도 스마트 카드 함수를 호출하여 요청을 완료한 경우 이 인터페이스는 스마트 카드 오류 코드를 반환할 수 있습니다. 자세한 내용은 스마트 카드 반환 값을 참조하세요.

예제

다음 예제에서는 회신 데이터를 검색하는 방법을 보여줍니다. 이 예제에서는 lLe이 ISCardCmd::get_ApduReplyLength 메서드에 대한 이전 호출에 의해 값이 설정된 LONG 형식의 변수이고, pIByteReply가 IByteBuffer 인터페이스의 instance 대한 유효한 포인터이고, pISCardCmd가 ISCardCmd 인터페이스의 instance 대한 유효한 포인터라고 가정합니다.

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.
    }
}

요구 사항

요구 사항
지원되는 최소 클라이언트
Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버
Windows Server 2003 [데스크톱 앱만 해당]
클라이언트 지원 종료
Windows XP
서버 지원 종료
Windows Server 2003
헤더
Scarddat.h
유형 라이브러리
Scarddat.tlb
DLL
Scardssp.dll
IID
IID_ISCardCmd D5778AE3-43DE-11D0-9171-00AA00C18068로 정의됩니다.

추가 정보

get_ApduReplyLength

ISCardCmd

put_ApduReply