функция обратного вызова 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) |