Поделиться через


IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)

Клиент, заинтересованный в получении уведомлений о том, что сообщение было передано, отправит IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE запрос драйверу близкого взаимодействия.

Основной код

IRP_MJ_DEVICE_CONTROL

Входной буфер

None

Выходной буфер

None

Блок состояния

Irp-IoStatus.Status> имеет значение STATUS_SUCCESS, если запрос выполнен успешно.

В противном случае — состояние соответствующего условия ошибки в виде кода NTSTATUS.

Дополнительные сведения см. в разделе Значения NTSTATUS.

Комментарии

  • Клиентское приложение отправит этот IOCTL в цикле управления в дескриптор публикации. Две отдельные передачи одного сообщения приводят к активации двух событий.
  • Клиент должен отправлять еще один IOCTL каждый раз, когда выполнено заполнение. Драйвер ДОЛЖЕН использовать соответствующие блокировки, чтобы гарантировать, что число успешных завершений этого IOCTL приравнивается к количеству передачи публикации.
  • При использовании этого IOCTL требуются следующие действия:
    • Если этот IOCTL получен на дескриптор, который ранее не выполнял IOCTL_NFP_SET_PAYLOAD, драйвер ДОЛЖЕН завершить его с помощью STATUS_INVALID_DEVICE_STATE.
    • Драйвер должен поддерживать эквивалент счетчика CompleteEventImmediately (ULONG или больше) в дескрипторе файла публикации.
    • При получении этого IOCTL в драйвере:
      • Если значение счетчика равно нулю, драйвер ДОЛЖЕН использовать IOCTL для последующего завершения.
      • Если значение счетчика больше нуля, то драйвер ДОЛЖЕН уменьшать счетчик на единицу и немедленно завершить IOCTL с STATUS_SUCCESS.
    • Если публикация передается и в настоящее время IOCTL не используется, драйвер ДОЛЖЕН увеличить значение счетчика CompleteEventImmediately на единицу.
    • Если публикация передается, когда доступен IOCTL с подвесной ручкой, драйвер ДОЛЖЕН завершить заполненное IRP с STATUS_SUCCESS и НЕ увеличивать счетчик CompleteEventImmediately.
    • Если IOCTL содержит буфер входных или выходных данных, драйвер ДОЛЖЕН завершить IOCTL с STATUS_INVALID_PARAMETER.
    • Если этот IOCTL получен в то время как в дескрипторе публикации в настоящее время добавлен другой, второй (или более поздней версии) должен быть заполнен с STATUS_INVALID_DEVICE_STATE.
    • Драйвер ДОЛЖЕН поддерживать CancelIo iOCTL с подвесной ручкой.

Требования

Требование Значение
Минимальная версия клиента Windows 8
Верхняя часть nfpdev.h

См. также раздел

Общее руководство по проектированию ближней связи (NFC)

Руководство по проектированию близкого взаимодействия с полями (касания и дела, модель поставщика NFP, требования к драйверу)