Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenmdlsup.c
Go to the documentation of this file.
00001 /* 00002 * COPYRIGHT: See COPYING in the top level directory 00003 * PROJECT: ReactOS Kernel 00004 * FILE: ntoskrnl/cache/logsup.c 00005 * PURPOSE: Logging and configuration routines 00006 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org) 00007 */ 00008 00009 /* INCLUDES *******************************************************************/ 00010 00011 #include <ntoskrnl.h> 00012 #include "newcc.h" 00013 #define NDEBUG 00014 #include <debug.h> 00015 00016 /* GLOBALS ********************************************************************/ 00017 00018 /* FUNCTIONS ******************************************************************/ 00019 00020 PMDL 00021 NTAPI 00022 CcpBuildCacheMdl(PFILE_OBJECT FileObject, 00023 PLARGE_INTEGER FileOffset, 00024 ULONG Length, 00025 PIO_STATUS_BLOCK IOSB) 00026 { 00027 PMDL Mdl; 00028 PVOID Bcb, Buffer; 00029 00030 BOOLEAN Result = CcMapData(FileObject, 00031 FileOffset, 00032 Length, 00033 PIN_WAIT, 00034 &Bcb, 00035 &Buffer); 00036 00037 if (!Result) 00038 { 00039 IOSB->Information = 0; 00040 IOSB->Status = STATUS_UNSUCCESSFUL; 00041 return NULL; 00042 } 00043 00044 IOSB->Information = Length; 00045 IOSB->Status = STATUS_SUCCESS; 00046 00047 Mdl = IoAllocateMdl(Buffer, Length, FALSE, FALSE, NULL); 00048 00049 if (!Mdl) 00050 { 00051 IOSB->Information = 0; 00052 IOSB->Status = STATUS_NO_MEMORY; 00053 return NULL; 00054 } 00055 00056 IOSB->Information = Length; 00057 IOSB->Status = STATUS_SUCCESS; 00058 00059 return Mdl; 00060 } 00061 00062 VOID 00063 NTAPI 00064 CcMdlRead(IN PFILE_OBJECT FileObject, 00065 IN PLARGE_INTEGER FileOffset, 00066 IN ULONG Length, 00067 OUT PMDL *MdlChain, 00068 OUT PIO_STATUS_BLOCK IoStatus) 00069 { 00070 *MdlChain = CcpBuildCacheMdl(FileObject, FileOffset, Length, IoStatus); 00071 } 00072 00073 VOID 00074 NTAPI 00075 CcMdlReadComplete(IN PFILE_OBJECT FileObject, 00076 IN PMDL MdlChain) 00077 { 00078 IoFreeMdl(MdlChain); 00079 } 00080 00081 VOID 00082 NTAPI 00083 CcMdlReadComplete2(IN PMDL MdlChain, 00084 IN PFILE_OBJECT FileObject) 00085 { 00086 UNIMPLEMENTED 00087 } 00088 00089 VOID 00090 NTAPI 00091 CcPrepareMdlWrite(IN PFILE_OBJECT FileObject, 00092 IN PLARGE_INTEGER FileOffset, 00093 IN ULONG Length, 00094 OUT PMDL *MdlChain, 00095 OUT PIO_STATUS_BLOCK IoStatus) 00096 { 00097 *MdlChain = CcpBuildCacheMdl(FileObject, FileOffset, Length, IoStatus); 00098 } 00099 00100 VOID 00101 NTAPI 00102 CcMdlWriteComplete(IN PFILE_OBJECT FileObject, 00103 IN PLARGE_INTEGER FileOffset, 00104 IN PMDL MdlChain) 00105 { 00106 IoFreeMdl(MdlChain); 00107 } 00108 00109 VOID 00110 NTAPI 00111 CcMdlWriteComplete2(IN PFILE_OBJECT FileObject, 00112 IN PLARGE_INTEGER FileOffset, 00113 IN PMDL MdlChain) 00114 { 00115 UNIMPLEMENTED 00116 } 00117 00118 VOID 00119 NTAPI 00120 CcMdlWriteAbort(IN PFILE_OBJECT FileObject, 00121 IN PMDL MdlChain) 00122 { 00123 ASSERT(FALSE); 00124 IoFreeMdl(MdlChain); 00125 } 00126 00127 /* EOF */ Generated on Sat May 26 2012 04:35:56 for ReactOS by
1.7.6.1
|