Share via


ISCardCmd::BuildCmd 메서드

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

BuildCmd 메서드는 스마트 카드 전송하기 위한 유효한 APDU(명령 애플리케이션 프로토콜 데이터 단위)를 생성합니다.

구문

HRESULT BuildCmd(
  [in] BYTE         byClassId,
  [in] BYTE         byInsId,
  [in] BYTE         byP1,
  [in] BYTE         byP2,
  [in] LPBYTEBUFFER pbyData,
  [in] LONG         *p1Le
);

매개 변수

byClassId [in]

명령 클래스 식별자입니다.

byInsId [in]

명령 명령 식별자입니다.

byP1 [in]

명령의 첫 번째 매개 변수입니다.

byP2 [in]

명령의 두 번째 매개 변수입니다.

pbyData [in]

명령의 데이터 부분에 대한 포인터입니다.

p1Le [in]

반환된 데이터의 예상 길이를 포함하는 LONG 정수에 대한 포인터입니다.

반환 값

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

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

 

설명

명령을 다른 명령으로 캡슐화하려면 캡슐화를 호출합니다.

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

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

예제

다음 예제에서는 명령 APDU를 생성하는 방법을 보여 있습니다. 이 예제에서는 pISCardCmd가 ISCardCmd 인터페이스의 instance 대한 유효한 포인터이고 pIByteRequest가 IByteBuffer::Initialize 메서드에 대한 이전 호출로 초기화된 IByteBuffer 인터페이스의 instance 대한 유효한 포인터라고 가정합니다.

LONG       lLe = 0;
HRESULT    hr;

hr = pISCardCmd->BuildCmd(0x00,   // Some cards prefer 0xC0
                          0xa4,   // 'Select File'
                          0x00,
                          0x00,
                          pIByteRequest,
                          &lLe);
if (FAILED(hr))
{
    printf("Failed ISCardCmd::BuildCmd\n");
    // Take other error handling action 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로 정의됩니다.

추가 정보

캡슐화

ISCardCmd