Table of contents

NFP device interface

Last Updated: 8/1/2016

A client application communicates with the proximity device through a defined set of I/O control codes sent to an open handle.

Publication and Subscription Handles

Each publication and each subscription is represented as an open handle to the driver. Therefore, M publications and N subscriptions would equate to M+N open handles to the driver. The Windows I/O Manager will enforce reasonable handle count limits on processes.

Generic NULL File Name Handles

A generic file handle is opened for sending non-publication and non-subscription requests to the driver. This type of handle must be accepted. The client will use this handle to determine the Maximum Message Size and the Transmission Rate of the driver.

IOCTL Support

The IOCTLs supporting the proximity device driver interface are defined in Nfpdev.h. The control codes are defined with the following attributes.

  • METHOD_BUFFERED
  • FILE_ANY_ACCESS
  • FILE_DEVICE_NFP

Each publication and each subscription is manifested as its own open handle to the driver. Therefore, M publications and N subscriptions would equate to M+N open handles to the driver. The Windows I/O Manager will enforce reasonable handle count limits on processes.

The IOCTL codes are defined in the header Nfpdev.h

The security descriptor of the device is left as the OS or device class default.

Reserved and Vendor IOCTL Codes

The following table describes the reserved and vender specific control code ranges.

TypeRange StartRange End
ReservedCTL_CODE(FILE_DEVICE_NFP, 0x0000, *, *)CTL_CODE(FILE_DEVICE_NFP, 0x00FF, *, *)
Vendor SpecificCTL_CODE(FILE_DEVICE_NFP, 0x0100, *, *)CTL_CODE(FILE_DEVICE_NFP, 0x01FF, *, *)

NFC device driver interface (DDI) overview
Near field proximity DDI reference

© 2016 Microsoft