IOCTL_NFCSE_GET_NEXT_EVENT IOCTL (nfcsedev.h)
Код элемента управления IOCTL_NFCSE_GET_NEXT_EVENT возвращает следующее событие, доступное в буфере, или, если буферизация событий больше отсутствует, остается в состоянии ожидания до тех пор, пока не будет доступно событие защищенного элемента. Затем сведения о событии должны быть возвращены вызывающей объекту.
Основной код
Входной буфер
None
Длина входного буфера
None
Выходной буфер
Значение DWORD, указывающее размер структуры SECURE_ELEMENT_EVENT_INFO плюс ее полезные данные, за которым сразу же следует сама структура SECURE_ELEMENT_EVENT_INFO.
Блок состояния
Irp->IoStatus.Status имеет значение STATUS_SUCCESS , если запрос выполнен успешно. Возможные коды ошибок:
Код возврата | Описание |
---|---|
STATUS_INVALID_DEVICE_STATE | Этот код возвращается при вызове этого IOCTL для дескриптора устройства с именем файла, отличного от SEEvents, или при наличии еще одного ожидающего запроса, который еще не завершен. |
STATUS_INVALID_PARAMETER | Этот код возвращается, если выходной буфер не равен нулю или если GUID защищенного элемента не соответствует ни одному из перечисленных идентификаторов. |
Комментарии
Ниже приведены требования, которым должен соответствовать драйвер.
- Этот IOCTL должен вызываться для дескриптора с относительным именем файла SEEvents ; в противном случае драйвер возвращает STATUS_INVALID_DEVICE_STATE
- Этот драйвер должен поддерживать CancelIO для этого ожидающего IOCTL.
- Этот драйвер должен поддерживать очередь полученных событий защищенного элемента, которые соответствуют типу подписки.
-
При получении этого IOCTL в драйвере должны выполняться следующие условия:
- Если полученная очередь пуста, драйвер должен настроить IOCTL для последующего завершения.
- Если полученная очередь не пуста, драйвер должен удалить из очереди одно событие, скопировать буфер сообщений в выходной буфер IOCTL и немедленно завершить IOCTL с STATUS_SUCCESS .
- Если драйвер завершает этот IOCTL с STATUS_SUCCESS, первый DWORD [4 байт] выходного буфера должен содержать размер структуры SECURE_ELEMENT_EVENT_INFO плюс ее полезные данные.
- Если полученная информация о событии безопасного элемента слишком велика для копирования в буфер этого IOCTL, драйвер должен скопировать требуемый размер буфера в первые 4 байта выходного буфера, задать для поля сведений IOCTL значение sizeof(DWORD) и завершить IOCTL с помощью STATUS_BUFFER_OVERFLOW. Затем событие должно быть оставлено в очереди получения.
Требования
Требование | Значение |
---|---|
Заголовок | nfcsedev.h |