#include <ntoskrnl.h>
#include <debug.h>
Go to the source code of this file.
|
BOOLEAN NTAPI | MiUnmapPageTable (IN PMMPTE PointerPde) |
|
VOID NTAPI | MiFlushTlb (IN PMMPTE PointerPte, IN PVOID Address) |
|
PMMPTE NTAPI | MiGetPageTableForProcess (IN PEPROCESS Process, IN PVOID Address, IN BOOLEAN Create) |
|
MMPTE NTAPI | MiGetPageEntryForProcess (IN PEPROCESS Process, IN PVOID Address) |
|
BOOLEAN NTAPI | MmCreateProcessAddressSpace (IN ULONG MinWs, IN PEPROCESS Process, IN PULONG DirectoryTableBase) |
|
NTSTATUS NTAPI | MmCreateVirtualMappingInternal (IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount, IN BOOLEAN MarkAsMapped) |
|
NTSTATUS NTAPI | MmCreateVirtualMappingUnsafe (IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount) |
|
NTSTATUS NTAPI | MmCreateVirtualMapping (IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount) |
|
VOID NTAPI | MmDeleteVirtualMapping (IN PEPROCESS Process, IN PVOID Address, OUT PBOOLEAN WasDirty, OUT PPFN_NUMBER Page) |
|
VOID NTAPI | MmDeletePageFileMapping (IN PEPROCESS Process, IN PVOID Address, IN SWAPENTRY *SwapEntry) |
|
NTSTATUS NTAPI | MmCreatePageFileMapping (IN PEPROCESS Process, IN PVOID Address, IN SWAPENTRY SwapEntry) |
|
PFN_NUMBER NTAPI | MmGetPfnForProcess (IN PEPROCESS Process, IN PVOID Address) |
|
BOOLEAN NTAPI | MmIsDirtyPage (IN PEPROCESS Process, IN PVOID Address) |
|
VOID NTAPI | MmSetCleanPage (IN PEPROCESS Process, IN PVOID Address) |
|
VOID NTAPI | MmSetDirtyPage (IN PEPROCESS Process, IN PVOID Address) |
|
BOOLEAN NTAPI | MmIsPagePresent (IN PEPROCESS Process, IN PVOID Address) |
|
BOOLEAN NTAPI | MmIsPageSwapEntry (IN PEPROCESS Process, IN PVOID Address) |
|
ULONG NTAPI | MmGetPageProtect (IN PEPROCESS Process, IN PVOID Address) |
|
VOID NTAPI | MmSetPageProtect (IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection) |
|
VOID NTAPI | MmInitGlobalKernelPageDirectory (VOID) |
|
PHYSICAL_ADDRESS NTAPI | MmGetPhysicalAddress (IN PVOID Address) |
|
◆ NDEBUG
◆ MiFlushTlb()
Definition at line 48 of file stubs.c.
50{
51
52
53
56 {
57
58
59
61 }
62}
FORCEINLINE VOID KeArmInvalidateTlbEntry(IN PVOID Address)
#define MmSystemRangeStart
BOOLEAN NTAPI MiUnmapPageTable(IN PMMPTE PointerPde)
Referenced by MmDeleteVirtualMapping().
◆ MiGetPageEntryForProcess()
Definition at line 217 of file stubs.c.
219{
222 Pte.
u.
Hard.AsUlong = 0;
223
224
225
226
228 if (PointerPte)
229 {
230
231
232
233 Pte = *PointerPte;
235 }
236
237
238
239
240 return Pte;
241}
_Must_inspect_result_ _In_ PLARGE_INTEGER _In_ PLARGE_INTEGER _In_ ULONG _In_ PFILE_OBJECT _In_ PVOID Process
PMMPTE NTAPI MiGetPageTableForProcess(IN PEPROCESS Process, IN PVOID Address, IN BOOLEAN Create)
Referenced by MmGetPfnForProcess(), MmGetPhysicalAddress(), MmIsPagePresent(), and MmIsPageSwapEntry().
◆ MiGetPageTableForProcess()
Definition at line 66 of file stubs.c.
69{
70
77
78
79
80
84 {
85
86
87
89 }
90
91
92
93
96
97
98
99
101 if (PointerPde->u.Hard.Coarse.
Valid)
102 {
103
104
105
107 {
108
109
110
111
112
113 {
114
115
116
118 kernelHack:
119 DPRINT1(
"Must create a page for: %p PDE: %p\n",
121
122
123
124
127
128
129
130
132
133
134
135
139
140
141
142
143
144
145
146
147
148
150
151
152
154 DPRINT1(
"PointerPte: %p\n", PointerPte);
155
156
157
158
160
161
162
163
168 }
169
170
171
172
173
174 }
175 else
176 {
177
178
179
181
182
183
184
185#if 1
186 goto kernelHack;
187#else
189
190
191
192
195
196
197
198
199 TempPde.u.Hard.AsUlong = 0xDEADBEEF;
200
201
202
203
205#endif
206 }
207 }
208
209
210
211
213}
HARDWARE_PTE_ARMV6 TempPte
HARDWARE_PDE_ARMV6 TempPde
#define NT_SUCCESS(StatCode)
#define MiAddressToPte(x)
#define MiAddressToPde(x)
NTSTATUS NTAPI MmRequestPageMemoryConsumer(ULONG Consumer, BOOLEAN MyWait, PPFN_NUMBER AllocatedPage)
MMPDE_HARDWARE MiArmTemplatePde
#define PsGetCurrentProcess
Referenced by MiGetPageEntryForProcess(), MmCreateVirtualMappingInternal(), and MmDeleteVirtualMapping().
◆ MiUnmapPageTable()
◆ MmCreatePageFileMapping()
Definition at line 526 of file stubs.c.
529{
530
531
532
535}
#define STATUS_NOT_IMPLEMENTED
#define UNIMPLEMENTED_DBGBREAK(...)
◆ MmCreateProcessAddressSpace()
Definition at line 245 of file stubs.c.
248{
255
256
257
258
259
260 for (
i = 0;
i <
sizeof(Pfn) /
sizeof(Pfn[0]);
i++)
261 {
262
263
264
267 }
268
269
270
271
272 PageDirectory = MmCreateHyperspaceMapping(Pfn[0]);
273
274
275
276
280
281
282
283
284
288
289
290
291
295
296
297
298
301
302
303
304
308
309
310
311
312 MmDeleteHyperspaceMapping(PageDirectory);
313
314
315
316
319}
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
#define MiGetPdeOffset(x)
ULONG MmGlobalKernelPageDirectory[1024]
#define RtlCopyMemory(Destination, Source, Length)
Referenced by PspCreateProcess().
◆ MmCreateVirtualMapping()
Definition at line 437 of file stubs.c.
442{
444
445
446
447
448 for (
i = 0;
i < PageCount;
i++)
449 {
450
451
452
454 }
455
456
457
458
461 Protection,
462 Pages,
463 PageCount);
464}
BOOLEAN NTAPI MmIsPageInUse(PFN_NUMBER Page)
NTSTATUS NTAPI MmCreateVirtualMappingUnsafe(IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount)
◆ MmCreateVirtualMappingInternal()
Definition at line 323 of file stubs.c.
329{
333 ULONG OldPdeOffset, PdeOffset,
i;
335
336
337
338
339
341
342
343
344
347 for (
i = 0;
i < PageCount;
i++)
348 {
349
350
351
353 if (OldPdeOffset != PdeOffset)
354 {
355
356
357
359
360
361
362
365 }
366 else
367 {
368
369
370
372 PointerPte++;
373 }
374
375
376
377
378 OldPdeOffset = PdeOffset;
379
380
381
382
384
385
386
387
391
392
393
394
396 }
397
398
399
400
402}
Referenced by MmCreateVirtualMappingUnsafe().
◆ MmCreateVirtualMappingUnsafe()
Definition at line 406 of file stubs.c.
411{
412
413
414
416 {
417
418
419
422 Protection,
423 Pages,
424 PageCount,
426 }
427
428
429
430
432 return 0;
433}
NTSTATUS NTAPI MmCreateVirtualMappingInternal(IN PEPROCESS Process, IN PVOID Address, IN ULONG Protection, IN PPFN_NUMBER Pages, IN ULONG PageCount, IN BOOLEAN MarkAsMapped)
Referenced by MmCreateVirtualMapping().
◆ MmDeletePageFileMapping()
◆ MmDeleteVirtualMapping()
Definition at line 468 of file stubs.c.
472{
476
477
478
479
481 if (PointerPte)
482 {
483
484
485
486 Pte = *PointerPte;
487 PointerPte->
u.
Hard.AsUlong = 0;
488
489
490
491
493
494
495
496
498
499
500
501
503 }
504
505
506
507
510}
_In_ PVOID _Out_opt_ BOOLEAN * WasDirty
_In_ PVOID _Out_opt_ BOOLEAN _Out_opt_ PPFN_NUMBER Page
NTSTATUS NTAPI MmReleasePageMemoryConsumer(ULONG Consumer, PFN_NUMBER Page)
VOID NTAPI MiFlushTlb(IN PMMPTE PointerPte, IN PVOID Address)
◆ MmGetPageProtect()
◆ MmGetPfnForProcess()
Definition at line 539 of file stubs.c.
541{
543
544
545
546
549
550
551
552
554}
MMPTE NTAPI MiGetPageEntryForProcess(IN PEPROCESS Process, IN PVOID Address)
◆ MmGetPhysicalAddress()
Definition at line 685 of file stubs.c.
686{
689
690
691
692
694 {
695
696
697
705 }
706
707
708
709
712 {
713
714
715
719 }
720 else
721 {
722
723
724
726 }
727
728
729
730
732}
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS PhysicalAddress
Referenced by AcpiOsGetPhysicalAddress(), AtapiVirtToPhysAddr_(), CcRosTrimCache(), HalAllocateCommonBuffer(), HalpGrowMapBuffers(), HalpSetupTemporaryMappings(), HDA_InitCorbRirbPos(), CAC97MiniportWaveRTStream::Init(), KdDebuggerInitialize0(), Ki386BuildIdentityBuffer(), Ki386ConvertPte(), Ki386CreateIdentityMap(), SoundProgramDMA(), StorPortGetPhysicalAddress(), StorPortGetUncachedExtension(), TestPhysicalMemorySection(), and VidInitialize().
◆ MmInitGlobalKernelPageDirectory()
Definition at line 644 of file stubs.c.
645{
648
649
650
651
652
655
656
657
658
660 {
661
662
663
667 (CurrentPageDirectory[
i]))
668 {
669
670
671
673 }
674 }
675}
◆ MmIsDirtyPage()
◆ MmIsPagePresent()
◆ MmIsPageSwapEntry()
Definition at line 603 of file stubs.c.
605{
607
608
609
610
612
613
614
615
617}
◆ MmSetCleanPage()
◆ MmSetDirtyPage()
◆ MmSetPageProtect()
Definition at line 632 of file stubs.c.
635{
636
637
638
639 return;
640}
◆ MiArmTemplatePde
◆ MiArmTemplatePte
◆ MmGlobalKernelPageDirectory
ULONG MmGlobalKernelPageDirectory[1024] |