Manipulação de sequência de CX NFC
A maioria dos recursos e extensões de NCI não padrão implementados pelo firmware NFCC de diferentes fornecedores está relacionada à configuração do chipset, ao download de firmware e ao ajuste de hardware. Essas extensões não padrão podem ser compatíveis com o driver de cliente NFC registrando-se em sequências de driver específicas expostas pelo NFC CX. O driver cliente registra manipuladores de sequência específicos por meio da função NfcCxRegisterSequenceHandler . Normalmente, isso é feito durante a inicialização e deve ser invocado após NfcCxDeviceInitialize. Esses manipuladores não são registrados chamando NfcCxUnRegisterSequenceHandler durante o desligamento do dispositivo. Depois que o retorno de chamada do manipulador de sequência do driver cliente for invocado, o driver NFC CX não emitirá comandos NCI até que o driver de cliente NFC conclua sua manipulação. Esses retornos de chamada do manipulador de sequência foram projetados para serem assíncronos, permitindo que o cliente emita qualquer número de solicitações de E/S para o controlador antes de notificar o NFC CX de sua conclusão. O NFC CX usa um mecanismo de temporizador watchdog para determinar estados suspensos. Se o temporizador watchdog expirar antes da conclusão do manipulador de sequência pelo cliente, um bug marcar será disparado e o processo de host UMDF será encerrado pela estrutura UMDF.
Estes são os requisitos para o driver de cliente NFC na implementação de qualquer lógica adicional como parte do manipulador de sequência:
- Todos os comandos NCI enviados pelo cliente NFC ao manipular essas sequências devem garantir que a integridade do estado atual, conforme especificado pelo NFC CX, não seja violada. Portanto, o cliente NFC deve cuidar desse requisito para garantir o funcionamento adequado do dispositivo NFC. Por exemplo, ao lidar com a sequência de inicialização completa, o driver do cliente não deve emitir CORE_RESET_CMD NCI para redefinir o chipset.
- O driver de cliente NFC precisa garantir que as respostas e notificações NCI geradas pelos comandos NCI enviados para o controlador não sejam enviadas para a função NfcCxNciReadNotification do NFC CX. Isso é necessário porque, caso contrário, o computador de estado nfc CX NCI sairia da sincronização com os comandos que troca com o NFCC.