Edit

Near field communications (NFC)

Overview of the Near field communications (NFC) technology.

To develop Near field communications (NFC), you need these headers:

For the programming guide, see Near field communications (NFC).

IOCTLs

 
IOCTL_NFCRM_QUERY_RADIO_STATE

This IOCTL is used by the radio management application or service to query the current radio power state of the proximity device.
IOCTL_NFCRM_SET_RADIO_STATE

This IOCTL is used by the radio management application or service to set the radio power state of the proximity device.
IOCTL_NFCSE_ENUM_ENDPOINTS

Returns information regarding the list of all the secure elements attached to the NFC controller.
IOCTL_NFCSE_GET_NEXT_EVENT

The IOCTL_NFCSE_GET_NEXT_EVENT control code returns the next event available in the buffer, or if there are no more buffered events remains pending until a secure element event is available. The event details must then be returned to the caller.
IOCTL_NFCSE_GET_NFCC_CAPABILITIES

The IOCTL_NFCSE_GET_NFCC_CAPABILITIES control code returns information about the current NFC controller capabilities, including the maximum Listen Mode Routing table size (defined in section 4.2 of the NFC Controller Interface (NCI) Technical Specification Version 1.1) and supported routing modes.
IOCTL_NFCSE_GET_ROUTING_TABLE

Returns information regarding the current configuration of listen mode routing table.
IOCTL_NFCSE_HCE_REMOTE_RECV

Either returns the next data buffer available, or if there are no more buffered data, the request shall stay pending until an APDU buffer is available for reading.
IOCTL_NFCSE_HCE_REMOTE_SEND

Transmits response APDU from DeviceHost NFCEE to remote device. The caller must be sure that response APDU is conformant to ISO-IEC 7816-4.
IOCTL_NFCSE_SET_CARD_EMULATION_MODE

The IOCTL_NFCSE_SET_CARD_EMULATION_MODE control code sets whether the specified secure element is exposed in card emulation mode.
IOCTL_NFCSE_SET_ROUTING_TABLE

Configures NFC controller listen mode routing table.
IOCTL_NFCSE_SUBSCRIBE_FOR_EVENT

The IOCTL_NFCSE_SUBSCRIBE_FOR_EVENT control code is issued by a client to subscribe to a specific event.
IOCTL_NFCSERM_QUERY_RADIO_STATE

The IOCTL_NFCSERM_QUERY_RADIO_STATE is used by the SE radio management application or service to query the current radio power state of the proximity device.
IOCTL_NFCSERM_SET_RADIO_STATE

The IOCTL_NFCSERM_SET_RADIO_STATE is used by the SE radio management application or service to set the current radio power state of the proximity device.
IOCTL_NFP_DISABLE

A client sends the IOCTL_NFP_DISABLE request to temporarily disable subscriptions, publications, and presence events.
IOCTL_NFP_ENABLE

The client sends the IOCTL_NFP_ENABLE request to re-enable previously disabled subscriptions, publications, and presence events.
IOCTL_NFP_GET_KILO_BYTES_PER_SECOND

A client sends the IOCTL_NFP_GET_KILO_BYTES_PER_SECOND request to any generic handle, one that is non-published and non-subscribed, to the provider device.
IOCTL_NFP_GET_MAX_MESSAGE_BYTES

A client sends the IOCTL_NFP_GET_MAX_MESSAGE_BYTES request to any generic handle, one that is non-published and non-subscribed, to the provider device to determine the maximum message size supported.
IOCTL_NFP_GET_NEXT_SUBSCRIBED_MESSAGE

The client sends the IOCTL_NFP_GET_NEXT_SUBSCRIBED_MESSAGE request to the subscription handle repeatedly in order to receive subscribed messages as they arrive.
IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE

A client interested in receiving notifications that a message has been transmitted will send the IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE request to the proximity driver.
IOCTL_NFP_SET_PAYLOAD

A client application sends message data and confirms publication with the IOCTL_NFP_SET_PAYLOAD request.
IOCTL_SMARTCARD_GET_ATTRIBUTE

The IOCTL_SMARTCARD_GET_ATTRIBUTE control code queries for smart card attributes.
IOCTL_SMARTCARD_GET_STATE

The IOCTL_SMARTCARD_GET_STATE control code gets the current status of the smart card.
IOCTL_SMARTCARD_IS_ABSENT

The IOCTL_SMARTCARD_IS_ABSENT control code returns immediately with STATUS_SUCCESS if no smart card is currently detected.
IOCTL_SMARTCARD_IS_PRESENT

The IOCTL_SMARTCARD_IS_PRESENT control code detects whether a smart card is currently detected.
IOCTL_SMARTCARD_POWER

Windows may require a driver to have this IOCTL to be NOP and return success.
IOCTL_SMARTCARD_SET_ATTRIBUTE

The IOCTL_SMARTCARD_SET_ATTRIBUTE control code sets an attribute and returns STATUS_SUCCESS on SCARD_ATTR_DEVICE_IN_USE; otherwise, it returns STATUS_NOT_SUPPORTED.
IOCTL_SMARTCARD_SET_PROTOCOL

Sets the procotol the driver communicates to the smart card with after the card is detected.
IOCTL_SMARTCARD_TRANSMIT

Transmits data from the client to the detected smart card in ISO7816-4 compliant APDU.

Enumerations

 
SECURE_ELEMENT_CARD_EMULATION_MODE

This enumeration indicates the card emulation mode of a secure element.
SECURE_ELEMENT_EVENT_TYPE

Indicates the type of secure element events.
SECURE_ELEMENT_ROUTING_TYPE

SECURE_ELEMENT_ROUTING_TYPE is a member of SECURE_ELEMENT_ROUTING_TABLE_ENTRY.
SECURE_ELEMENT_TYPE

Indicates the type of a secure element.

Structures

 
NFCRM_RADIO_STATE

This structure is used to indicate the radio state.
NFCRM_SET_RADIO_STATE

This structure is used to set the radio state. The driver, in the case of airplane mode, has to persist the radio state and restore it when airplane mode is disabled.
SCARD_IO_REQUEST

This structure is used to identify a smart card I/O request.
SECURE_ELEMENT_AID_ROUTING_INFO

SECURE_ELEMENT_AID_ROUTING_INFO is a member of SECURE_ELEMENT_ROUTING_TABLE_ENTRY.
SECURE_ELEMENT_ENDPOINT_INFO

SECURE_ELEMENT_ENDPOINT_INFO is a member of SECURE_ELEMENT_ENDPOINT_LIST.
SECURE_ELEMENT_ENDPOINT_LIST

The output parameter for IOCTL_NFCSE_ENUM_ENDPOINTS.
SECURE_ELEMENT_EVENT_INFO

This structure provides information about a secure element event.
SECURE_ELEMENT_EVENT_SUBSCRIPTION_INFO

The SECURE_ELEMENT_EVENT_SUBSCRIPTION_INFO structure is an input parameter to IOCTL_NFCSE_SUBSCRIBE_FOR_EVENT.
SECURE_ELEMENT_HCE_ACTIVATION_PAYLOAD

The _SECURE_ELEMENT_HCE_ACTIVATION_PAYLOAD structure contains a unique connection identifier and NFC Forum RF technology and protocol types.
SECURE_ELEMENT_HCE_DATA_PACKET

SECURE_ELEMENT_HCE_DATA_PACKET is an input buffer to IOCTL_NFCSE_HCE_REMOTE_SEND and output buffer for IOCTL_NFCSE_HCE_REMOTE_RECV.
SECURE_ELEMENT_NFCC_CAPABILITIES

SECURE_ELEMENT_NFCC_CAPABILITIES contains NFC controller capabilities.
SECURE_ELEMENT_PROTO_ROUTING_INFO

SECURE_ELEMENT_PROTO_ROUTING_INFO is a member of SECURE_ELEMENT_ROUTING_TABLE_ENTRY.
SECURE_ELEMENT_ROUTING_TABLE

SECURE_ELEMENT_ROUTING_TABLE is an input parameter for IOCTL_NFCSE_SET_ROUTING_TABLE.
SECURE_ELEMENT_ROUTING_TABLE_ENTRY

SECURE_ELEMENT_ROUTING_TABLE_ENTRY is a member of SECURE_ELEMENT_ROUTING_TABLE.
SECURE_ELEMENT_SET_CARD_EMULATION_MODE_INFO

SECURE_ELEMENT_SET_CARD_EMULATION_MODE_INFO is the input parameter for IOCTL_NFCSE_SET_CARD_EMULATION_MODE.
SECURE_ELEMENT_TECH_ROUTING_INFO

SECURE_ELEMENT_TECH_ROUTING_INFO is a member of SECURE_ELEMENT_ROUTING_TABLE_ENTRY.