Modelo de provedor NFP
O modelo de driver de provedor NFP (Proximidade de Campo Próximo) fornece uma superfície comum para o Windows usar recursos NFP e habilitar cenários NFP e casos de uso.
Para expor esses recursos ao Windows, o implementador de um dispositivo compatível deve fornecer um driver de dispositivo que implemente o GUID_DEVINTERFACE_NFP interface do dispositivo. Esse driver trabalha com a tecnologia NFP subjacente implementada em software e/ou hardware no dispositivo para formar um provedor NFP.
A interface do dispositivo GUID_DEVINTERFACE_NFP permite que o Windows use várias tecnologias NFP. A funcionalidade mais comum exposta pelos implementadores dessa interface de dispositivo é genérica e não específica para qualquer tecnologia NFP subjacente. A programação de aplicativos para essa funcionalidade comum para se comunicar com outros aplicativos do Windows deve ser capaz de usar qualquer provedor NFP sem modificar o código do aplicativo. Como o NFC é um padrão líder no espaço NFP, a interface do dispositivo dá suporte a comportamentos NFC específicos, dando a um provedor NFP a capacidade de lidar com pacotes NDEF nativos. Um aplicativo pode assumir uma dependência dessa funcionalidade específica de NFC e restringir sua própria funcionalidade somente a provedores NFP habilitados para NFC.
Dois computadores com provedores NFP incompatíveis não poderão se comunicar por meio de seus provedores NFP. Essa especificação fornece diretrizes suficientes para dar suporte à interoperação de dois sistemas Windows certificados porque o suporte para pelo menos um provedor habilitado para NFC é um requisito para a certificação do sistema Windows.
Os provedores NFP pré-encenam sua comunicação usando um modelo pub/sub cuja transmissão é disparada por um evento próximo da tecnologia NFP subjacente. As mensagens são publicadas e assinadas com base em um tipo de mensagem. Quando dois dispositivos se tornam próximos de acordo com a tecnologia NFP, o estado de proximidade é disparado e todas as mensagens publicadas atualmente são transmitidas aos assinantes atuais no outro dispositivo. Esse mecanismo fornece um modelo em que o usuário define algum contexto em seu dispositivo e, em seguida, toca nele com outro dispositivo para concluir o cenário de maneira fácil.