Самоучитель по программированию систем защиты

       

Если су- ществует, то где



Таблица 7





METHOD BUFFERED
METHOD IN DIRECT
METHOD OUT DIRECT
METHOD NEITHER
InBuffer
Метод передачи
Buffered I/O
Buffered I/O
Buffered I/O
Виртуальный адрес инициатора запроса
Если су- ществует, то где располо- жен
Адрес промежуточного буфера в фиксированной части IRP в поле Irp->AssociatedIrp. SystemBuffer
В стеке размещения ввода/вывода вир- туальный адрес инициатора запроса в Parame ters. Devicelo- Control. TypeSInputBuffer
Длина
Длина в байтах в поле Parameters.DeviceloControl.InputBuffer Length в текущем стеке размещения ввода/вывода.
Out- Buffer
Метод передачи
Buffered I/O
Direct I/O
Direct I/O
Виртуальный адрес инициатора запроса
Если су- ществует, то где располо- жен
Адрес промежуточного буфера в фиксированной части IRP в поле Irp->Associate-dlrp.SystemB uffer
MDL, адрес в Irp->MdlAd- dress
MDL, адрес в Irp->MdlAd- dress
Виртуальный адрес инициатора запроса в Irp->UserBuffer
Длина
Длина в байтах в поле Parameters.DeviceloControl.OutputBufferLength в текущем стеке раз- мещения ввода/вывода.

Для завершения запроса IRP необходимо установить поле Irp->IoStatus.Information равным числу прочитанных/записанных в буфер байт. В случае буферизованного ввода/вывода это поле укажет Диспетчеру ввода/вывода, сколько

байт нужно скопировать из промежуточного буфера в невыгружаемой области системного адресного пространства в пользовательский буфер.

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