How IO requests are described

 Three types of data buffers.ide

 

Direct I/O: Memory descriptor list, which describes the physical addresses of the requestor’s user mode virtual affresses. I/O manager locks the nonpaged buffer. The address is in IRP’s MdlAddress field. Arbitrary context.spa

 

Buffered I/O: The data form the requestor’s buffer may be copied form the requestor’s address space into an intermediate location in system address space. The address is in IRP’s AssocatedIrp.SystemBuffer. Arbitrary context.orm

 

Neither I/O: the driver is provided with the requestor’s virtual address of the buffer. This buffer must be use in the calling thread’s context. The address is in IRP’s UserBuffer field.ip

 

IOCTL: I/O Functions Codes.it

CTL_CODE Method Argument:io

METHOD_IN_DIRECT and METHOD_OUT_DIRECT: In function DeviceIOControl(),The inbuffer is buffered I/O and the outbuffer is Direct I/O.  METHOD_IN check outbuffer read access and METHOD_OUT_DIRECT check outbuffer write access.function

相關文章
相關標籤/搜索