Программирование драйверов Windows

       

Случай 2: Завершение работы над IRP запросом


Некоторые запросы могут быть полностью обработаны без обращения к физическому устройству, за которое отвечает драйвер, например, получение дескриптора устройства или настройки режима работы самого драйвера. В этом случае рабочая процедура должна выполнить следующие действия:

  • Поместить код успешного завершения в поле Status в блоке IoStatus пакета IRP и указать приемлемое значение в поле Information.
  • Выполнить вызов IoCompleteRequest, чтобы освободить пакет IRP без повышения приоритета.
  • Возвратить управление с кодом STATUS_SUCCESS.
  • NTSTATUS CloseRequestHandler( IN PDEVICE_OBJECT pDevObj, IN PIRP pIrp) { : pIrp-&#62IoStatus.Status = STATUS_SUCCESS; pIrp-&#62IoStatus.Information = 0; IoCompleteRequest ( pIrp, IO_NO_INCREMENT ); return STATUS SUCCESS; }



    Содержание раздела