структура TARGET_DEVICE_CUSTOM_NOTIFICATION (wdm.h)

Структура TARGET_DEVICE_CUSTOM_NOTIFICATION описывает пользовательское событие устройства.

Синтаксис

typedef struct _TARGET_DEVICE_CUSTOM_NOTIFICATION {
  USHORT       Version;
  USHORT       Size;
  GUID         Event;
  PFILE_OBJECT FileObject;
  LONG         NameBufferOffset;
  UCHAR        CustomDataBuffer[1];
} TARGET_DEVICE_CUSTOM_NOTIFICATION, *PTARGET_DEVICE_CUSTOM_NOTIFICATION;

Члены

Version

Указывает версию структуры данных, в настоящее время 1.

Size

Задает размер структуры в байтах, включая первые три стандартных элемента, а также данные, относящиеся к событиям.

Event

Указывает GUID, идентифицирующие событие. Идентификаторы GUID для уведомления о пользовательских событиях определяются компонентами, которые используют этот механизм.

FileObject

Указатель на файловый объект для устройства.

NameBufferOffset

Указывает смещение (в байтах) от начала CustomDataBuffer , где начинается текст. Значение -1 указывает на отсутствие текста.

CustomDataBuffer[1]

Буфер переменной длины, при необходимости содержащий двоичные данные в начале буфера, за которым следует необязательный текстовый буфер (выровнен по словам).

Комментарии

Компоненты режима ядра используют эту структуру для уведомления о пользовательских событиях: для сигнализации пользовательского события (IoReportTargetDeviceChange[Asynchronous]) и при обработке пользовательского события (в подпрограмме обратного вызова уведомления).

Эта структура вмещает как буфер двоичных данных переменной длины, так и текстовый буфер Юникода переменной длины. NameBufferOffset должен указывать, с чего начинается текстовый буфер, чтобы данные могли быть доставлены в соответствующем формате (ANSI или Юникод) в приложения пользовательского режима, зарегистрированные для уведомления на основе дескрипторов с помощью RegisterDeviceNotification. См. также RegisterDeviceNotification.

Требования

Требование Значение
Заголовок wdm.h (включая Wdm.h, Ntddk.h, Ntifs.h)

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

IoRegisterPlugPlayNotification

IoReportTargetDeviceChange

IoReportTargetDeviceChangeAsynchronous

RegisterDeviceNotification