IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE IOCTL (nfpdev.h)
Клиент, заинтересованный в получении уведомлений о том, что сообщение было передано, отправит IOCTL_NFP_GET_NEXT_TRANSMITTED_MESSAGE запрос драйверу близкого взаимодействия.
Основной код
Входной буфер
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 |