1 /* $Id: page.c,v 1.22 2004/08/15 16:39:03 chorns Exp $
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS kernel
5 * FILE: ntoskrnl/io/page.c
12 /* INCLUDES *****************************************************************/
16 #include <internal/debug.h>
18 /* FUNCTIONS *****************************************************************/
21 IoPageWrite(PFILE_OBJECT FileObject
,
23 PLARGE_INTEGER Offset
,
25 PIO_STATUS_BLOCK StatusBlock
)
28 PIO_STACK_LOCATION StackPtr
;
31 DPRINT("IoPageWrite(FileObject %x, Mdl %x)\n",
34 Irp
= IoBuildSynchronousFsdRequestWithMdl(IRP_MJ_WRITE
,
35 FileObject
->DeviceObject
,
43 return (STATUS_INSUFFICIENT_RESOURCES
);
45 Irp
->Flags
= IRP_NOCACHE
|IRP_PAGING_IO
;
46 StackPtr
= IoGetNextIrpStackLocation(Irp
);
47 StackPtr
->FileObject
= FileObject
;
48 DPRINT("Before IoCallDriver\n");
49 Status
= IofCallDriver(FileObject
->DeviceObject
,Irp
);
50 DPRINT("Status %d STATUS_PENDING %d\n",Status
,STATUS_PENDING
);
59 IoPageRead(PFILE_OBJECT FileObject
,
61 PLARGE_INTEGER Offset
,
63 PIO_STATUS_BLOCK StatusBlock
)
66 PIO_STACK_LOCATION StackPtr
;
69 DPRINT("IoPageRead(FileObject %x, Mdl %x)\n",
72 Irp
= IoBuildSynchronousFsdRequestWithMdl(IRP_MJ_READ
,
73 FileObject
->DeviceObject
,
81 return (STATUS_INSUFFICIENT_RESOURCES
);
83 Irp
->Flags
= IRP_NOCACHE
|IRP_PAGING_IO
;
84 StackPtr
= IoGetNextIrpStackLocation(Irp
);
85 StackPtr
->FileObject
= FileObject
;
86 DPRINT("Before IoCallDriver\n");
87 Status
= IofCallDriver(FileObject
->DeviceObject
, Irp
);
88 DPRINT("Status %d STATUS_PENDING %d\n",Status
,STATUS_PENDING
);
98 IoSynchronousPageWrite (PFILE_OBJECT FileObject
,
100 PLARGE_INTEGER Offset
,
102 PIO_STATUS_BLOCK StatusBlock
)
105 PIO_STACK_LOCATION StackPtr
;
108 DPRINT("IoSynchronousPageWrite(FileObject %x, Mdl %x)\n",
111 Irp
= IoBuildSynchronousFsdRequestWithMdl(IRP_MJ_WRITE
,
112 FileObject
->DeviceObject
,
120 return (STATUS_INSUFFICIENT_RESOURCES
);
122 Irp
->Flags
= IRP_NOCACHE
|IRP_PAGING_IO
|IRP_SYNCHRONOUS_PAGING_IO
;
123 StackPtr
= IoGetNextIrpStackLocation(Irp
);
124 StackPtr
->FileObject
= FileObject
;
125 DPRINT("Before IoCallDriver\n");
126 Status
= IofCallDriver(FileObject
->DeviceObject
,Irp
);
127 DPRINT("Status %d STATUS_PENDING %d\n",Status
,STATUS_PENDING
);