Запросы чтения и записи IRP_MJ_READ и IRPJVLMVRITE
Запросы чтения и записи IRP_MJ_READ и IRPJVLMVRITE
Метод передачи буфера, используемый в запросах чтения и записи, контролируется полем Flags объекта-устройства. После создания объекта-устройства с помощью функции loCreateDevice() необходимо инициализировать это поле. Поле может иметь установленными несколько флагов, при этом применяются следующие правила:
Расположение буфера в зависимости от метода его передачи для запросов чтения и записи полностью определяется таблицей 6.
Для завершения запроса IRP на чтение/запись, необходимо установить поле Irp>IoStatus.Information равным числу прочитанных/записанных в буфер байт. В случае буферизованного ввода/вывода это поле укажет Диспетчеру ввода/вывода, сколько байт нужно скопировать из промежуточного буфера в невыгружаемой области системного адресного пространства в пользовательский буфер.