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.