IOCTL_NFCSE_SET_ROUTING_TABLE IOCTL(nfcsedev.h)

NFC 컨트롤러 수신 대기 모드 라우팅 테이블을 구성합니다. 호출자는 한 번의 호출로 전체 수신 대기 모드 라우팅 정보를 보내야 합니다. 호출자는 라우팅 테이블이 4.2.5.1에 정의된 cbMaxRoutingTableSize 값보다 작은지 확인해야 합니다. 총 크기는 NFC NCI 표준 초 6.3.2에 따라 계산되며 AID 기반 경로 수 x 4 + cbAid의 합계 + 기술 기반 경로 수 x 5 + 프로토콜 기반 경로 수 x 5와 같습니다. 호출자는 기술 및 프로토콜 기반 경로의 값이 NCI NFC 사양 초 6.3.2를 준수하는지 확인해야 합니다.

주 코드

IRP_MJ_DEVICE_CONTROL

입력 버퍼

SECURE_ELEMENT_ROUTING_TABLE 현재 구성된 모든 라우팅 항목을 포함합니다.

출력 버퍼

없음

상태 블록

Irp->요청이 성공하면 IoStatus.StatusSTATUS_SUCCESS 설정됩니다. 가능한 오류 코드는 다음과 같습니다.

반환 코드 Description
STATUS_INVALID_BUFFER_SIZE 제공된 버퍼가 NFC 컨트롤러 MAX_ROUTING_TABLE_SIZE 보다 큽니다.
STATUS_FEATURE_NOT_SUPPORTED NFCC는 수신 대기 모드 라우팅 구성을 지원하지 않습니다.
STATUS_INVALID_PARAMETER 출력 버퍼가 0이 아니거나 기술 또는 프로토콜에 사용되는 값이 NFC NCI 사양 초 6.3.2를 준수하는 경우 또는 중복 AID가 사용되는 경우 또는 현재 NFC 컨트롤러 기능에서 지원되지 않는 라우팅 모드를 사용하는 경우 이 상태 반환됩니다.
STATUS_INVALID_DEVICE_STATE 이 코드는 IOCTL이 상대 이름 'SEManage'가 아닌 핸들에 전송되는 경우 반환됩니다.

설명

다음은 드라이버가 준수해야 하는 요구 사항입니다.

  • 이 IOCTL은 'SEManage' 상대 파일 이름이 있는 핸들에 전송됩니다. 그렇지 않으면 드라이버가 STATUS_INVALID_DEVICE_STATE 완료해야 합니다.
  • 드라이버에는 RF 기술 A, B 및 F 및/또는 ISO-DEP 프로토콜이 있는 경우 UICC SE로 라우팅되는 초기 기본 수신 모드 라우팅 테이블 항목이 있어야 합니다. 이러한 라우팅 항목은 나중에 디바이스 호스트에서 시작한 새 수신 모드 라우팅 테이블 구성에 의해 재정의될 수 있습니다.
  • 드라이버는 프로토콜 NFC-DEP가 항상 디바이스 호스트에 매핑되도록 해야 합니다. 호출자가 이를 지정하지 않더라도 드라이버는 이 규칙을 암시적으로 추가해야 합니다.
  • NFCC가 RF 검색 상태일 때 이 IOCTL이 실행되면 드라이버는 NFCC를 RF 유휴 상태로 전환하고 라우팅 테이블을 구성한 다음 RF 검색을 다시 시작해야 합니다.

요구 사항

요구 사항
헤더 nfcsedev.h