1 // Copyright (c) 2004, Antony C. Roberts 2 3 // Use of this file is subject to the terms 4 // described in the LICENSE.TXT file that 5 // accompanies this file. 6 // 7 // Your use of this file indicates your 8 // acceptance of the terms described in 9 // LICENSE.TXT. 10 // 11 // http://www.freebt.net 12 13 #ifndef _FREEBT_RWR_H 14 #define _FREEBT_RWR_H 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 typedef struct _FREEBT_RW_CONTEXT 21 { 22 PURB Urb; 23 PMDL Mdl; 24 ULONG Length; // remaining to xfer 25 ULONG Numxfer; // cumulate xfer 26 ULONG_PTR VirtualAddress; // va for next segment of xfer. 27 28 } FREEBT_RW_CONTEXT, * PFREEBT_RW_CONTEXT; 29 30 NTSTATUS NTAPI FreeBT_DispatchRead(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp); 31 NTSTATUS NTAPI FreeBT_ReadCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context); 32 NTSTATUS NTAPI FreeBT_DispatchWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp); 33 NTSTATUS NTAPI FreeBT_WriteCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID Context); 34 35 #ifdef __cplusplus 36 }; 37 #endif 38 39 #endif 40