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.