Функция KsGenerateDataEvent (ks.h)

Функция KsGenerateDataEvent создает одно из стандартных уведомлений о событиях при получении структуры записи события и данных обратного вызова. Это позволяет устройству определить, когда следует создавать уведомления о событиях, но по-прежнему использовать эту вспомогательную функцию для выполнения фактического уведомления.

Синтаксис

KSDDKAPI NTSTATUS KsGenerateDataEvent(
  [in] PKSEVENT_ENTRY EventEntry,
  [in] ULONG          DataSize,
  [in] PVOID          Data
);

Параметры

[in] EventEntry

Задает структуру записи события, которая ссылается на данные события. Сведения используются для определения типа уведомления. Если тип уведомления не является одним из предопределенных стандартов, возвращается ошибка. В случае одного события nonrecurring эта запись будет недопустимой при возвращении из функции. Поэтому любой код, перечисляющий список событий, должен предварительно увеличиваться, чтобы получить следующее событие в списке перед передачей этого события в функцию.

[in] DataSize

Задает размер переданного параметра Data в байтах.

[in] Data

Указывает на данные, передаваемые обратному вызову клиента. Эти данные копируются в один из предварительно установленных буферных слотов, настроенных при включении события. Размер данных должен быть меньше, чем изначально выделенный, иначе событие завершится ошибкой.

Возвращаемое значение

Функция KsGenerateDataEvent возвращает STATUS_SUCCESS в случае успешного выполнения или в случае неудачи она возвращает исключение или ошибку памяти.

Комментарии

Предполагается, что блокировка списка событий была получена до вызова этой функции. Эта функция может привести к вызову RemoveHandler для записи события. Таким образом, функция не должна вызываться на более высоком уровне, чем уровень IRQ блокировки, или функция Remove должна иметь возможность обрабатывать вызов на таком уровне IRQ.

Эта функция предназначена специально для событий, которые передают данные обратно через обратный вызов клиенту.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ks.h (включая Ks.h)
Библиотека Ks.lib

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

KSBUFFER_ITEM