1 /* $Id: page.c,v 1.18 2002/09/07 15:12:53 chorns Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/io/page.c
12 /* INCLUDES *****************************************************************/
17 #include <internal/debug.h>
20 /* FUNCTIONS *****************************************************************/
23 IoPageWrite(PFILE_OBJECT FileObject
,
25 PLARGE_INTEGER Offset
,
27 PIO_STATUS_BLOCK StatusBlock
)
30 PIO_STACK_LOCATION StackPtr
;
33 DPRINT("IoPageWrite(FileObject %x, Mdl %x)\n",
36 Irp
= IoBuildSynchronousFsdRequestWithMdl(IRP_MJ_WRITE
,
37 FileObject
->DeviceObject
,
45 return (STATUS_INSUFFICIENT_RESOURCES
);
47 Irp
->Flags
= IRP_NOCACHE
|IRP_PAGING_IO
;
48 StackPtr
= IoGetNextIrpStackLocation(Irp
);
49 StackPtr
->FileObject
= FileObject
;
50 DPRINT("Before IoCallDriver\n");
51 Status
= IofCallDriver(FileObject
->DeviceObject
,Irp
);
52 DPRINT("Status %d STATUS_PENDING %d\n",Status
,STATUS_PENDING
);
58 IoPageRead(PFILE_OBJECT FileObject
,
60 PLARGE_INTEGER Offset
,
62 PIO_STATUS_BLOCK StatusBlock
)
65 PIO_STACK_LOCATION StackPtr
;
68 DPRINT("IoPageRead(FileObject %x, Mdl %x)\n",
71 Irp
= IoBuildSynchronousFsdRequestWithMdl(IRP_MJ_READ
,
72 FileObject
->DeviceObject
,
80 return (STATUS_INSUFFICIENT_RESOURCES
);
82 Irp
->Flags
= IRP_NOCACHE
|IRP_PAGING_IO
;
83 StackPtr
= IoGetNextIrpStackLocation(Irp
);
84 StackPtr
->FileObject
= FileObject
;
85 DPRINT("Before IoCallDriver\n");
86 Status
= IofCallDriver(FileObject
->DeviceObject
, Irp
);
87 DPRINT("Status %d STATUS_PENDING %d\n",Status
,STATUS_PENDING
);
94 IoSynchronousPageWrite (PFILE_OBJECT FileObject
,
96 PLARGE_INTEGER Offset
,
98 PIO_STATUS_BLOCK StatusBlock
)
101 PIO_STACK_LOCATION StackPtr
;
104 DPRINT("IoSynchronousPageWrite(FileObject %x, Mdl %x)\n",
107 Irp
= IoBuildSynchronousFsdRequestWithMdl(IRP_MJ_WRITE
,
108 FileObject
->DeviceObject
,
116 return (STATUS_INSUFFICIENT_RESOURCES
);
118 Irp
->Flags
= IRP_NOCACHE
|IRP_PAGING_IO
|IRP_SYNCHRONOUS_PAGING_IO
;
119 StackPtr
= IoGetNextIrpStackLocation(Irp
);
120 StackPtr
->FileObject
= FileObject
;
121 DPRINT("Before IoCallDriver\n");
122 Status
= IofCallDriver(FileObject
->DeviceObject
,Irp
);
123 DPRINT("Status %d STATUS_PENDING %d\n",Status
,STATUS_PENDING
);