Struct km::irp::IRP
[−]
[src]
pub struct IRP {
pub Type: u16,
pub Size: u16,
pub MdlAddress: PVOID,
pub Flags: u32,
pub SystemBuffer: PVOID,
pub ThreadListEntry: LIST_ENTRY,
pub IoStatus: IO_STATUS_BLOCK,
pub RequestorMode: KPROCESSOR_MODE,
pub PendingReturned: bool,
pub StackCount: i8,
pub CurrentLocation: i8,
pub Cancel: bool,
pub CancelIrql: KIRQL,
pub ApcEnvironment: u8,
pub AllocationFlags: u8,
pub UserIosb: PIO_STATUS_BLOCK,
pub UserEvent: PKEVENT,
pub UserApcRoutine: PIO_APC_ROUTINE,
pub UserApcContext: PVOID,
pub CancelRoutine: PDRIVER_CANCEL,
pub UserBuffer: PVOID,
pub Overlay: _IRP_OVERLAY,
}The IRP structure is a partial opaque structure that represents an I/O request packet.
Fields
Type | |
Size | |
MdlAddress | Pointer to an |
Flags | Flags word - used to remember various flags. |
SystemBuffer | Pointer to a system-space buffer if the driver is using buffered I/O. |
ThreadListEntry | |
IoStatus | I/O status - final status of operation. |
RequestorMode | Indicates the execution mode of the original requester of the operation. |
PendingReturned | If set to |
StackCount | Stack state information. |
CurrentLocation | Stack state information. |
Cancel | If set to |
CancelIrql | Irql at which the cancel spinlock was acquired. |
ApcEnvironment | |
AllocationFlags | Allocation control flags. |
UserIosb | User parameters. |
UserEvent | |
UserApcRoutine | |
UserApcContext | |
CancelRoutine | Contains the entry point for a driver-supplied |
UserBuffer | Contains the address of an output buffer for |
Overlay | Kernel structures. |
Methods
impl IRP
fn get_current_stack_location(&mut self) -> &mut IO_STACK_LOCATION
Returns a pointer to the caller's stack location in the given IRP.
fn complete_request(&mut self, Status: NTSTATUS) -> NTSTATUS
Indicates that the caller has completed all processing for a given I/O request and is returning the given IRP to the I/O manager.