Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

iosup.c

Go to the documentation of this file.
00001 /*++ 00002 00003 Copyright (c) 1989 Microsoft Corporation 00004 00005 Module Name: 00006 00007 iosup.c 00008 00009 Abstract: 00010 00011 This module contains routines which provide support for the I/O system. 00012 00013 Author: 00014 00015 Lou Perazzoli (loup) 25-Apr-1989 00016 Landy Wang (landyw) 02-June-1997 00017 00018 Revision History: 00019 00020 --*/ 00021 00022 #include "mi.h" 00023 00024 #undef MmIsRecursiveIoFault 00025 00026 PFN_NUMBER MmSystemLockPagesCount; 00027 00028 extern ULONG MmTotalSystemDriverPages; 00029 00030 BOOLEAN 00031 MmIsRecursiveIoFault( 00032 VOID 00033 ); 00034 00035 PVOID 00036 MiAllocateContiguousMemory ( 00037 IN SIZE_T NumberOfBytes, 00038 IN PFN_NUMBER LowestAcceptablePfn, 00039 IN PFN_NUMBER HighestAcceptablePfn, 00040 IN PFN_NUMBER BoundaryPfn, 00041 PVOID CallingAddress 00042 ); 00043 00044 PVOID 00045 MiMapLockedPagesInUserSpace ( 00046 IN PMDL MemoryDescriptorList, 00047 IN PVOID StartingVa, 00048 IN MEMORY_CACHING_TYPE CacheType, 00049 IN PVOID BaseVa 00050 ); 00051 00052 VOID 00053 MiUnmapLockedPagesInUserSpace ( 00054 IN PVOID BaseAddress, 00055 IN PMDL MemoryDescriptorList 00056 ); 00057 00058 LOGICAL 00059 MiGetSystemPteAvailability ( 00060 IN ULONG NumberOfPtes, 00061 IN MM_PAGE_PRIORITY Priority 00062 ); 00063 00064 VOID 00065 MiAddMdlTracker ( 00066 IN PMDL MemoryDescriptorList, 00067 IN PVOID CallingAddress, 00068 IN PVOID CallersCaller, 00069 IN PFN_NUMBER NumberOfPagesToLock, 00070 IN ULONG Who 00071 ); 00072 00073 typedef struct _PTE_TRACKER { 00074 LIST_ENTRY ListEntry; 00075 PMDL Mdl; 00076 PFN_NUMBER Count; 00077 PVOID SystemVa; 00078 PVOID StartVa; 00079 ULONG Offset; 00080 ULONG Length; 00081 ULONG_PTR Page; 00082 PVOID CallingAddress; 00083 PVOID CallersCaller; 00084 PVOID PteAddress; 00085 } PTE_TRACKER, *PPTE_TRACKER; 00086 00087 typedef struct _SYSPTES_HEADER { 00088 LIST_ENTRY ListHead; 00089 PFN_NUMBER Count; 00090 } SYSPTES_HEADER, *PSYSPTES_HEADER; 00091 00092 LOGICAL MmTrackPtes = FALSE; 00093 BOOLEAN MiTrackPtesAborted = FALSE; 00094 SYSPTES_HEADER