ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

mdlsup.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 doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.