근거리 통신(NFC)
NFC(근거리 통신) 기술에 대한 개요입니다.
NFC(근거리 통신)를 개발하려면 다음 헤더가 필요합니다.
- nfccx.h
- nfcradiodev.h
- nfcsedev.h
- nfpdev.h
- winsmcrd.h
프로그래밍 가이드는 NFC(근거리 통신)
IOCTL
IOCTL_NFCRM_QUERY_RADIO_STATE 이 IOCTL은 무선 관리 애플리케이션 또는 서비스에서 근접 디바이스의 현재 무선 전원 상태를 쿼리하는 데 사용됩니다. |
IOCTL_NFCRM_SET_RADIO_STATE 이 IOCTL은 무선 관리 애플리케이션 또는 서비스에서 근접 디바이스의 무선 전원 상태를 설정하는 데 사용됩니다. |
IOCTL_NFCSE_ENUM_ENDPOINTS NFC 컨트롤러에 연결된 모든 보안 요소 목록에 대한 정보를 반환합니다. |
IOCTL_NFCSE_GET_NEXT_EVENT IOCTL_NFCSE_GET_NEXT_EVENT 제어 코드는 버퍼에서 사용할 수 있는 다음 이벤트를 반환하거나, 더 이상 버퍼링된 이벤트가 없는 경우 보안 요소 이벤트를 사용할 수 있을 때까지 보류 중인 상태로 유지됩니다. 그런 다음 이벤트 세부 정보를 호출자에게 반환해야 합니다. |
IOCTL_NFCSE_GET_NFCC_CAPABILITIES IOCTL_NFCSE_GET_NFCC_CAPABILITIES 제어 코드는 최대 수신 모드 라우팅 테이블 크기(NCI(NFC 컨트롤러 인터페이스) 기술 사양 버전 1.1의 섹션 4.2에 정의됨) 및 지원되는 라우팅 모드를 포함하여 현재 NFC 컨트롤러 기능에 대한 정보를 반환합니다. |
IOCTL_NFCSE_GET_ROUTING_TABLE 수신 모드 라우팅 테이블의 현재 구성에 대한 정보를 반환합니다. |
IOCTL_NFCSE_HCE_REMOTE_RECV 사용 가능한 다음 데이터 버퍼를 반환하거나 버퍼링된 데이터가 더 이상 없는 경우 APDU 버퍼를 읽을 수 있을 때까지 요청이 보류 상태로 유지됩니다. |
IOCTL_NFCSE_HCE_REMOTE_SEND DeviceHost NFCEE에서 원격 디바이스로 응답 APDU를 전송합니다. 호출자는 응답 APDU가 ISO-IEC 7816-4를 준수하는지 확인해야 합니다. |
IOCTL_NFCSE_SET_CARD_EMULATION_MODE IOCTL_NFCSE_SET_CARD_EMULATION_MODE 제어 코드는 지정된 보안 요소가 카드 에뮬레이션 모드에서 노출되는지 여부를 설정합니다. |
IOCTL_NFCSE_SET_ROUTING_TABLE NFC 컨트롤러 수신 모드 라우팅 테이블을 구성합니다. |
IOCTL_NFCSE_SUBSCRIBE_FOR_EVENT IOCTL_NFCSE_SUBSCRIBE_FOR_EVENT 제어 코드는 클라이언트가 특정 이벤트를 구독하기 위해 발급합니다. |
IOCTL_NFCSERM_QUERY_RADIO_STATE 이 IOCTL_NFCSERM_QUERY_RADIO_STATE SE 무선 관리 애플리케이션 또는 서비스에서 근접 디바이스의 현재 무선 전원 상태를 쿼리하는 데 사용됩니다. |
IOCTL_NFCSERM_SET_RADIO_STATE 이 IOCTL_NFCSERM_SET_RADIO_STATE SE 무선 관리 애플리케이션 또는 서비스에서 근접 디바이스의 현재 무선 전원 상태를 설정하는 데 사용됩니다. |
IOCTL_NFP_DISABLE 클라이언트는 구독, 게시 및 현재 상태 이벤트를 일시적으로 사용하지 않도록 설정하기 위해 IOCTL_NFP_DISABLE 요청을 보냅니다. |
IOCTL_NFP_ENABLE 클라이언트는 이전에 사용하지 않도록 설정된 구독, 게시 및 현재 상태 이벤트를 다시 사용하도록 설정하기 위해 IOCTL_NFP_ENABLE 요청을 보냅니다. |
IOCTL_NFP_GET_KILO_BYTES_PER_SECOND 클라이언트는 IOCTL_NFP_GET_KILO_BYTES_PER_SECOND 요청을 게시되지 않았고 구독되지 않은 제네릭 핸들로 공급자 디바이스에 보냅니다. |
IOCTL_NFP_GET_MAX_MESSAGE_BYTES 클라이언트는 IOCTL_NFP_GET_MAX_MESSAGE_BYTES 요청을 게시되지 않았고 구독되지 않은 제네릭 핸들로 공급자 디바이스에 보내 지원되는 최대 메시지 크기를 확인합니다. |
IOCTL_NFP_GET_NEXT_SUBSCRIBED_MESSAGE 클라이언트는 구독 핸들에 IOCTL_NFP_GET_NEXT_SUBSCRIBED_MESSAGE 요청을 반복적으로 전송하여 구독된 메시지가 도착하면 수신합니다. |
IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE 메시지가 전송되었다는 알림을 받는 데 관심이 있는 클라이언트는 IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE 요청을 근접 드라이버로 보냅니다. |
IOCTL_NFP_SET_PAYLOAD 클라이언트 애플리케이션은 메시지 데이터를 보내고 IOCTL_NFP_SET_PAYLOAD 요청을 사용하여 게시를 확인합니다. |
IOCTL_SMARTCARD_GET_ATTRIBUTE IOCTL_SMARTCARD_GET_ATTRIBUTE 제어 코드는 스마트 카드 특성에 대한 쿼리를 제어합니다. |
IOCTL_SMARTCARD_GET_STATE IOCTL_SMARTCARD_GET_STATE 제어 코드는 스마트 카드의 현재 상태를 가져옵니다. |
IOCTL_SMARTCARD_IS_ABSENT 현재 스마트 카드가 검색되지 않으면 IOCTL_SMARTCARD_IS_ABSENT 제어 코드가 STATUS_SUCCESS 즉시 반환됩니다. |
IOCTL_SMARTCARD_IS_PRESENT IOCTL_SMARTCARD_IS_PRESENT 제어 코드는 스마트 카드가 현재 검색되었는지 여부를 감지합니다. |
IOCTL_SMARTCARD_POWER Windows에서는 드라이버가 이 IOCTL을 NOP로 사용하고 성공을 반환해야 할 수 있습니다. |
IOCTL_SMARTCARD_SET_ATTRIBUTE IOCTL_SMARTCARD_SET_ATTRIBUTE 컨트롤 코드는 특성을 설정하고 SCARD_ATTR_DEVICE_IN_USE STATUS_SUCCESS 반환합니다. 그렇지 않으면 STATUS_NOT_SUPPORTED 반환합니다. |
IOCTL_SMARTCARD_SET_PROTOCOL 카드가 감지된 후 드라이버가 스마트 카드와 통신하는 프로코톨을 설정합니다. |
IOCTL_SMARTCARD_TRANSMIT ISO7816-4 호환 APDU에서 클라이언트에서 감지된 스마트 카드로 데이터를 전송합니다. |
열거형
NFC_CX_CE_MODE_CONFIG 이 열거형은 CE 수신 모드 플래그를 지정합니다. |
NFC_CX_DEVICE_MODE 디바이스 모드 플래그를 지정합니다. |
NFC_CX_DRIVER_FLAGS 런타임 드라이버 플래그를 지정합니다. |
NFC_CX_HOST_ACTION NFC_CX_HOST_ACTION 열거형은 호스트 작업을 지정합니다. |
NFC_CX_NFCIP_MODE_CONFIG NFC_CX_NFCIP_MODE_CONFIG 열거형은 NFC-IP 초기자 모드를 지정합니다. |
NFC_CX_NFCIP_TGT_MODE_CONFIG NFC_CX_NFCIP_TGT_MODE_CONFIG 열거형은 NFC-IP 대상 모드를 지정합니다. |
NFC_CX_POLL_BAILOUT_CONFIG NFC_CX_POLL_BAILOUT_CONFIG 열거형은 폴링 모드 구제를 지정합니다. |
NFC_CX_POLL_MODE_CONFIG NFC_CX_POLL_MODE_CONFIG 열거형은 폴링 모드를 지정합니다. |
NFC_CX_SEQUENCE NFC_CX_SEQUENCE 열거형은 시퀀스를 지정합니다. |
NFC_CX_TRANSPORT_TYPE NFC_CX_TRANSPORT_TYPE 열거형은 전송 유형을 지정합니다. |
SECURE_ELEMENT_CARD_EMULATION_MODE 이 열거형은 보안 요소의 카드 에뮬레이션 모드를 나타냅니다. |
SECURE_ELEMENT_EVENT_TYPE 보안 요소 이벤트의 형식을 나타냅니다. |
SECURE_ELEMENT_ROUTING_TYPE SECURE_ELEMENT_ROUTING_TYPE SECURE_ELEMENT_ROUTING_TABLE_ENTRY 멤버입니다. |
SECURE_ELEMENT_TYPE 보안 요소의 형식을 나타냅니다. |
함수
EVT_NFC_CX_DEVICE_IO_CONTROL NFC CX에서 클라이언트 드라이버에 처리되지 않은 IOCTL을 보내도록 호출됩니다. |
EVT_NFC_CX_SEQUENCE_HANDLER NFC CX에서 호출하여 클라이언트 드라이버에 등록된 특정 시퀀스를 처리하도록 알립니다. |
EVT_NFC_CX_WRITE_NCI_PACKET NFC CX에서 클라이언트 드라이버에 쓰기 패킷을 보내도록 호출됩니다. |
NFC_CX_CLIENT_CONFIG_INIT NFC_CX_CLIENT_CONFIG_INIT 함수는 NFC_CX_CLIENT_CONFIG 구조를 초기화합니다. |
NFC_CX_LLCP_CONFIG_INIT NFC_CX_LLCP_CONFIG_INIT 함수는 NFC_CX_LLCP_CONFIG 구조를 초기화합니다. |
NFC_CX_RF_DISCOVERY_CONFIG_INIT NFC_CX_RF_DISCOVERY_CONFIG_INIT 함수는 NFC_CX_RF_DISCOVERY_CONFIG 구조를 초기화합니다. |
NfcCxDeviceDeinitialize NfcCxDeviceDeinitialize 함수(nfccx.h)는 AddDevice 루틴 중에 생성된 WDF 디바이스를 초기화합니다. |
NfcCxDeviceInitConfig DeviceInit 함수를 수행하기 위해 AddDevice 루틴 중에 클라이언트 드라이버에서 호출됩니다. 이 프로세스 중에는 다음 I/O 콜백 함수도 교환됩니다. |
NfcCxDeviceInitialize NfcCxDeviceInitialize 함수(nfccx.h)는 AddDevice 루틴 중에 생성된 WDF 디바이스를 초기화합니다. |
nfcCxHardwareEvent 디바이스를 시작하거나 중지하기 위해 D0Entry 및 D0Exit 콜백과 같은 하드웨어 이벤트가 발생할 때 클라이언트 드라이버에서 호출됩니다. 초기화 또는 부팅 시 펌웨어 다운로드가 필요한 드라이버의 경우 이 호출을 별도의 작업 항목으로 이동하는 것이 좋습니다. 그러나 클라이언트 드라이버는 다음을 담당합니다. |
NfcCxNciReadNotification 읽기 패킷을 사용할 수 있을 때 클라이언트 드라이버에서 호출됩니다. |
NfcCxRegisterSequenceHandler 초기화 중에 클라이언트 드라이버가 호출하여 특정 시퀀스를 처리하기 위해 등록합니다. |
NfcCxSetLlcpConfig LLCP 매개 변수를 구성하기 위해 클라이언트 드라이버에서 호출됩니다. |
nfcCxSetRfDiscoveryConfig RF 검색 매개 변수를 구성하기 위해 클라이언트 드라이버에서 호출됩니다. |
NfcCxUnregisterSequenceHandler 디바이스 종료 중에 클라이언트 드라이버가 호출하여 이전에 등록된 시퀀스 처리기 콜백에 대한 등록을 취소합니다. |
구조
NFC_CX_CLIENT_CONFIG NFC_CX_CLIENT_CONFIG 구조체는 NfcCxDeviceInitConfig에 대한 입력 매개 변수입니다. |
NFC_CX_HARDWARE_EVENT NFC_CX_HARDWARE_EVENT 구조체는 NfcCxHardwareEvent에 대한 입력 매개 변수입니다. |
NFC_CX_LLCP_CONFIG NFC_CX_LLCP_CONFIG 구조체는 NfcCxSetLlcpConfig에 대한 입력 매개 변수입니다. |
NFC_CX_RF_DISCOVERY_CONFIG NFC_CX_RF_DISCOVERY_CONFIG 구조에는 RF 검색 구성 설정이 포함됩니다. NfcDxDeviceInitialize를 호출한 후 초기화 중에 검색 구성을 완료해야 합니다. 그렇지 않으면 오류가 반환됩니다. |
NFCCX_DRIVER_GLOBALS _NFCCX_DRIVER_GLOBALS 구조체에는 NFC(근거리 통신) CX 드라이버에 대한 전역 값이 포함됩니다. |
NFCRM_RADIO_STATE 이 구조는 라디오 상태를 나타내는 데 사용됩니다. |
NFCRM_SET_RADIO_STATE 이 구조는 라디오 상태를 설정하는 데 사용됩니다. 비행기 모드의 경우 운전자는 무선 상태를 유지하여 비행기 모드를 사용하지 않도록 설정하면 복원해야 합니다. |
SCARD_IO_REQUEST 이 구조는 스마트 카드 I/O 요청을 식별하는 데 사용됩니다. |
SECURE_ELEMENT_AID_ROUTING_INFO SECURE_ELEMENT_AID_ROUTING_INFO SECURE_ELEMENT_ROUTING_TABLE_ENTRY 멤버입니다. |
SECURE_ELEMENT_ENDPOINT_INFO SECURE_ELEMENT_ENDPOINT_INFO SECURE_ELEMENT_ENDPOINT_LIST 멤버입니다. |
SECURE_ELEMENT_ENDPOINT_LIST IOCTL_NFCSE_ENUM_ENDPOINTS 출력 매개 변수입니다. |
SECURE_ELEMENT_EVENT_INFO 이 구조는 보안 요소 이벤트에 대한 정보를 제공합니다. |
SECURE_ELEMENT_EVENT_SUBSCRIPTION_INFO SECURE_ELEMENT_EVENT_SUBSCRIPTION_INFO 구조체는 IOCTL_NFCSE_SUBSCRIBE_FOR_EVENT 입력 매개 변수입니다. |
SECURE_ELEMENT_HCE_ACTIVATION_PAYLOAD _SECURE_ELEMENT_HCE_ACTIVATION_PAYLOAD 구조에는 고유한 연결 식별자 및 NFC 포럼 RF 기술 및 프로토콜 유형이 포함됩니다. |
SECURE_ELEMENT_HCE_DATA_PACKET SECURE_ELEMENT_HCE_DATA_PACKET IOCTL_NFCSE_HCE_REMOTE_RECV IOCTL_NFCSE_HCE_REMOTE_SEND 출력 버퍼에 대한 입력 버퍼입니다. |
SECURE_ELEMENT_NFCC_CAPABILITIES SECURE_ELEMENT_NFCC_CAPABILITIES NFC 컨트롤러 기능이 포함되어 있습니다. |
SECURE_ELEMENT_PROTO_ROUTING_INFO SECURE_ELEMENT_PROTO_ROUTING_INFO SECURE_ELEMENT_ROUTING_TABLE_ENTRY 멤버입니다. |
SECURE_ELEMENT_ROUTING_TABLE SECURE_ELEMENT_ROUTING_TABLE IOCTL_NFCSE_SET_ROUTING_TABLE 대한 입력 매개 변수입니다. |
SECURE_ELEMENT_ROUTING_TABLE_ENTRY SECURE_ELEMENT_ROUTING_TABLE_ENTRY SECURE_ELEMENT_ROUTING_TABLE 멤버입니다. |
SECURE_ELEMENT_SET_CARD_EMULATION_MODE_INFO SECURE_ELEMENT_SET_CARD_EMULATION_MODE_INFO IOCTL_NFCSE_SET_CARD_EMULATION_MODE 대한 입력 매개 변수입니다. |
SECURE_ELEMENT_TECH_ROUTING_INFO SECURE_ELEMENT_TECH_ROUTING_INFO SECURE_ELEMENT_ROUTING_TABLE_ENTRY 멤버입니다. |