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


функция обратного вызова HW_PROCESS_SERVICE_REQUEST (storport.h)

Подпрограмма обратного вызова HwStorProcessServiceRequest получает IRP элемента управления устройством, который содержит запрос IOCTL_MINIPORT_PROCESS_SERVICE_IRP , когда вызывающей стороне, например приложению в пользовательском режиме или драйверу режима ядра, требуется операция обратного вызова. Ввод-вывод выполняется драйвером мини-порта, когда ему нужно сообщить вызывающему объекту о чем-то или требуется, чтобы вызывающий объект что-то делал.

Синтаксис

HW_PROCESS_SERVICE_REQUEST HwProcessServiceRequest;

void HwProcessServiceRequest(
  PVOID DeviceExtension,
  PVOID Irp
)
{...}

Параметры

DeviceExtension

Указатель на область хранения для каждого адаптера драйвера виртуального мини-порта.

Irp

Указатель на запрос ввода-вывода.

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

None

Remarks

Имя HwStorProcessServiceRequest — это текст заполнителя для фактического имени подпрограммы. Фактический прототип этой подпрограммы определен в Storport.h следующим образом:

typedef
VOID
HW_PROCESS_SERVICE_REQUEST (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );

Драйвер порта вызывает подпрограмму HwStorProcessServiceRequest драйвера виртуального порта Storport на PASSIVE_LEVEL. Драйвер виртуального мини-порта завершает IRP, вызывая подпрограмму StorPortCompleteServiceIrp .

Примеры

Чтобы определить функцию обратного вызова HwStorProcessServiceRequest , необходимо сначала предоставить объявление функции, определяющее тип определяемой функции обратного вызова. Windows предоставляет набор типов функций обратного вызова для драйверов. Объявление функции с помощью типов функций обратного вызова помогает анализу кода для драйверов, средству проверки статических драйверов (SDV) и другим средствам проверки находить ошибки, и это требование для написания драйверов для операционной системы Windows.

Например, чтобы определить подпрограмму обратного вызова HwStorProcessServiceRequest с именем MyHwProcessServiceRequest, используйте тип HW_PROCESS_SERVICE_REQUEST , как показано в следующем примере кода:

HW_PROCESS_SERVICE_REQUEST MyHwProcessServiceRequest;

Затем реализуйте процедуру обратного вызова следующим образом:

_Use_decl_annotations_
VOID
MyHwProcessServiceRequest (
  _In_ PVOID  DeviceExtension,
  _In_ PVOID  Irp
  );
  {
      ...
  }

Тип функции HW_PROCESS_SERVICE_REQUEST определен в файле заголовка Storport.h. Чтобы более точно определить ошибки при запуске средств анализа кода, не забудьте добавить заметку Use_decl_annotations в определение функции. Заметка Use_decl_annotations гарантирует использование заметок, которые применяются к типу функции HW_PROCESS_SERVICE_REQUEST в файле заголовка. Дополнительные сведения о требованиях к объявлениям функций см. в статье Объявление функций с помощью типов ролей функций для драйверов Storport. Сведения о Use_decl_annotations см. в статье Поведение функции с заметками.

Требования

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

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

IOCTL_MINIPORT_PROCESS_SERVICE_IRP

StorPortCompleteServiceIrp