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


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

Подпрограмма HwStorCompleteServiceIrp вызывается при удалении виртуального адаптера. В этом случае виртуальный минипорт Storport может выполнять любые обратные вызовы IRP, полученные в HwStorCompleteServiceIrp.

Синтаксис

HW_COMPLETE_SERVICE_IRP HwCompleteServiceIrp;

void HwCompleteServiceIrp(
  PVOID DeviceExtension
)
{...}

Параметры

DeviceExtension

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

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

None

Remarks

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

typedef
VOID
HW_COMPLETE_SERVICE_IRP (
  _In_ PVOID  DeviceExtension
  );

Драйвер порта вызывает подпрограмму HwStorCompleteServiceIrpдрайвера виртуального порта Storport на PASSIVE_LEVEL без каких-либо спиновых блокировок. Драйвер виртуального мини-порта завершает IRP, вызывая подпрограмму HwStorCompleteServiceIrp .

Примеры

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

Например, чтобы определить подпрограмму обратного вызова HwStorCompleteServiceIrp с именем *&MyHwCompleteServiceIrp, используйте тип HW_COMPLETE_SERVICE_IRP , как показано в следующем примере кода:

HW_COMPLETE_SERVICE_IRP MyHwCompleteServiceIrp;

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

_Use_decl_annotations_
VOID
MyHwCompleteServiceIrp (
  _In_ PVOID  DeviceExtension
  );
  {
      ...
  }

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

Требования

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

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

HwStorProcessServiceRequest

StorPortCompleteServiceIrp