#include "mi.h"
Go to the source code of this file.
Classes | |
struct | _VERIFIER_THUNKS |
struct | _DRIVER_SPECIFIED_VERIFIER_THUNKS |
struct | _VERIFIER_STRING_INFO |
Defines | |
#define | THUNKED_API |
#define | VI_BAD_MAPPERS_MAX 100 |
#define | VI_POOL_ENTRIES_PER_PAGE (PAGE_SIZE / sizeof(VI_POOL_ENTRY)) |
#define | UNICODE_TAB 0x0009 |
#define | UNICODE_LF 0x000A |
#define | UNICODE_CR 0x000D |
#define | UNICODE_SPACE 0x0020 |
#define | UNICODE_CJK_SPACE 0x3000 |
#define | UNICODE_WHITESPACE(_ch) |
#define | MM_BOOT_IMAGE_SIZE (16 * 1024 * 1024) |
#define | ROUND_UP(VALUE, ROUND) |
#define | X86_HAL_ROUTINE 0 |
#define | POOL_ROUTINE 2 |
#define | VERIFIER_THUNK_IN_HAL(Flag) (Flag & X86_HAL_ROUTINE) |
#define | VERIFIER_POOL_ROUTINE(Flag) (Flag & POOL_ROUTINE) |
Typedefs | |
typedef _VERIFIER_THUNKS | VERIFIER_THUNKS |
typedef _VERIFIER_THUNKS * | PVERIFIER_THUNKS |
typedef _DRIVER_SPECIFIED_VERIFIER_THUNKS | DRIVER_SPECIFIED_VERIFIER_THUNKS |
typedef _DRIVER_SPECIFIED_VERIFIER_THUNKS * | PDRIVER_SPECIFIED_VERIFIER_THUNKS |
typedef VOID(* | PKE_ACQUIRE_SPINLOCK )(IN PKSPIN_LOCK SpinLock, OUT PKIRQL OldIrql) |
typedef VOID(* | PKE_RELEASE_SPINLOCK )(IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql) |
typedef VOID(* | PKE_RAISE_IRQL )(IN KIRQL NewIrql, OUT PKIRQL OldIrql) |
typedef VOID(* | PKE_LOWER_IRQL )(IN KIRQL NewIrql) |
typedef _VERIFIER_STRING_INFO | VERIFIER_STRING_INFO |
typedef _VERIFIER_STRING_INFO * | PVERIFIER_STRING_INFO |
Functions | |
THUNKED_API PVOID | VerifierAllocatePool (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes) |
THUNKED_API PVOID | VerifierAllocatePoolWithTag (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag) |
THUNKED_API PVOID | VerifierAllocatePoolWithQuotaTag (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag) |
THUNKED_API PVOID | VerifierAllocatePoolWithTagPriority (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag, IN EX_POOL_PRIORITY Priority) |
PVOID | VeAllocatePoolWithTagPriority (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes, IN ULONG Tag, IN EX_POOL_PRIORITY Priority, IN PVOID CallingAddress) |
VOID | VerifierFreePool (IN PVOID P) |
THUNKED_API VOID | VerifierFreePoolWithTag (IN PVOID P, IN ULONG TagToFree) |
THUNKED_API LONG | VerifierSetEvent (IN PRKEVENT Event, IN KPRIORITY Increment, IN BOOLEAN Wait) |
THUNKED_API KIRQL FASTCALL | VerifierKfRaiseIrql (IN KIRQL NewIrql) |
THUNKED_API VOID FASTCALL | VerifierKfLowerIrql (IN KIRQL NewIrql) |
THUNKED_API VOID | VerifierKeRaiseIrql (IN KIRQL NewIrql, OUT PKIRQL OldIrql) |
THUNKED_API VOID | VerifierKeLowerIrql (IN KIRQL NewIrql) |
THUNKED_API VOID | VerifierKeAcquireSpinLock (IN PKSPIN_LOCK SpinLock, OUT PKIRQL OldIrql) |
THUNKED_API VOID | VerifierKeReleaseSpinLock (IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql) |
THUNKED_API KIRQL FASTCALL | VerifierKfAcquireSpinLock (IN PKSPIN_LOCK SpinLock) |
THUNKED_API VOID FASTCALL | VerifierKfReleaseSpinLock (IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql) |
THUNKED_API VOID | VerifierKeInitializeTimerEx (IN PKTIMER Timer, IN TIMER_TYPE Type) |
THUNKED_API VOID | VerifierKeInitializeTimer (IN PKTIMER Timer) |
THUNKED_API BOOLEAN FASTCALL | VerifierExTryToAcquireFastMutex (IN PFAST_MUTEX FastMutex) |
THUNKED_API VOID FASTCALL | VerifierExAcquireFastMutex (IN PFAST_MUTEX FastMutex) |
THUNKED_API VOID FASTCALL | VerifierExReleaseFastMutex (IN PFAST_MUTEX FastMutex) |
THUNKED_API VOID FASTCALL | VerifierExAcquireFastMutexUnsafe (IN PFAST_MUTEX FastMutex) |
THUNKED_API VOID FASTCALL | VerifierExReleaseFastMutexUnsafe (IN PFAST_MUTEX FastMutex) |
THUNKED_API BOOLEAN | VerifierExAcquireResourceExclusive (IN PERESOURCE Resource, IN BOOLEAN Wait) |
THUNKED_API VOID FASTCALL | VerifierExReleaseResource (IN PERESOURCE Resource) |
THUNKED_API KIRQL FASTCALL | VerifierKeAcquireQueuedSpinLock (IN KSPIN_LOCK_QUEUE_NUMBER Number) |
THUNKED_API VOID FASTCALL | VerifierKeReleaseQueuedSpinLock (IN KSPIN_LOCK_QUEUE_NUMBER Number, IN KIRQL OldIrql) |
THUNKED_API BOOLEAN | VerifierSynchronizeExecution (IN PKINTERRUPT Interrupt, IN PKSYNCHRONIZE_ROUTINE SynchronizeRoutine, IN PVOID SynchronizeContext) |
THUNKED_API VOID | VerifierProbeAndLockPages (IN OUT PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation) |
THUNKED_API VOID | VerifierProbeAndLockProcessPages (IN OUT PMDL MemoryDescriptorList, IN PEPROCESS Process, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation) |
THUNKED_API VOID | VerifierProbeAndLockSelectedPages (IN OUT PMDL MemoryDescriptorList, IN PFILE_SEGMENT_ELEMENT SegmentArray, IN KPROCESSOR_MODE AccessMode, IN LOCK_OPERATION Operation) |
VOID | VerifierUnlockPages (IN OUT PMDL MemoryDescriptorList) |
VOID | VerifierUnmapLockedPages (IN PVOID BaseAddress, IN PMDL MemoryDescriptorList) |
VOID | VerifierUnmapIoSpace (IN PVOID BaseAddress, IN SIZE_T NumberOfBytes) |
THUNKED_API PVOID | VerifierMapIoSpace (IN PHYSICAL_ADDRESS PhysicalAddress, IN SIZE_T NumberOfBytes, IN MEMORY_CACHING_TYPE CacheType) |
THUNKED_API PVOID | VerifierMapLockedPages (IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode) |
THUNKED_API PVOID | VerifierMapLockedPagesSpecifyCache (IN PMDL MemoryDescriptorList, IN KPROCESSOR_MODE AccessMode, IN MEMORY_CACHING_TYPE CacheType, IN PVOID RequestedAddress, IN ULONG BugCheckOnFailure, IN MM_PAGE_PRIORITY Priority) |
VOID | VerifierFreeTrackedPool (IN PVOID VirtualAddress, IN SIZE_T ChargedBytes, IN LOGICAL CheckType, IN LOGICAL SpecialPool) |
VOID | ViPrintString (IN PUNICODE_STRING DriverName) |
LOGICAL | ViInjectResourceFailure (VOID) |
VOID | ViTrimAllSystemPagableMemory (VOID) |
VOID | ViInitializeEntry (IN PMI_VERIFIER_DRIVER_ENTRY Verifier, IN LOGICAL FirstLoad) |
LOGICAL | ViReservePoolAllocation (IN PMI_VERIFIER_DRIVER_ENTRY Verifier) |
ULONG_PTR | ViInsertPoolAllocation (IN PMI_VERIFIER_DRIVER_ENTRY Verifier, IN PVOID VirtualAddress, IN PVOID CallingAddress, IN SIZE_T NumberOfBytes, IN ULONG Tag) |
VOID | ViCancelPoolAllocation (IN PMI_VERIFIER_DRIVER_ENTRY Verifier) |
VOID | ViReleasePoolAllocation (IN PMI_VERIFIER_DRIVER_ENTRY Verifier, IN PVOID VirtualAddress, IN ULONG_PTR ListIndex, IN SIZE_T ChargedBytes) |
VOID | KfSanityCheckRaiseIrql (IN KIRQL NewIrql) |
VOID | KfSanityCheckLowerIrql (IN KIRQL NewIrql) |
LOGICAL | MiEnableVerifier (IN PLDR_DATA_TABLE_ENTRY DataTableEntry) |
VOID | ViInsertVerifierEntry (IN PMI_VERIFIER_DRIVER_ENTRY Verifier) |
PVOID | ViPostPoolAllocation (IN PVOID VirtualAddress, IN SIZE_T NumberOfBytes, IN POOL_TYPE PoolType, IN ULONG Tag, IN PVOID CallingAddress) |
PMI_VERIFIER_DRIVER_ENTRY | ViLocateVerifierEntry (IN PVOID SystemAddress) |
VOID | MiVerifierCheckThunks (IN PLDR_DATA_TABLE_ENTRY DataTableEntry) |
LOGICAL | ViAddBadMapper (IN PVOID BadMapper) |
THUNKED_API PVOID | VerifierAllocatePoolWithQuota (IN POOL_TYPE PoolType, IN SIZE_T NumberOfBytes) |
LOGICAL | MiInitializeDriverVerifierList (IN PLOADER_PARAMETER_BLOCK LoaderBlock) |
LOGICAL | MiApplyDriverVerifier (IN PLDR_DATA_TABLE_ENTRY DataTableEntry, IN PMI_VERIFIER_DRIVER_ENTRY Verifier) |
VOID | MiVerifyingDriverUnloading (IN PLDR_DATA_TABLE_ENTRY DataTableEntry) |
NTKERNELAPI LOGICAL | MmIsDriverVerifying (IN PDRIVER_OBJECT DriverObject) |
NTSTATUS | MmAddVerifierThunks (IN PVOID ThunkBuffer, IN ULONG ThunkBufferSize) |
NTSTATUS | MmGetVerifierInformation (OUT PVOID SystemInformation, IN ULONG SystemInformationLength, OUT PULONG Length) |
NTSTATUS | MmSetVerifierInformation (IN OUT PVOID SystemInformation, IN ULONG SystemInformationLength) |
VOID | KeRaiseIrql (IN KIRQL NewIrql, OUT PKIRQL OldIrql) |
VOID | KeLowerIrql (IN KIRQL NewIrql) |
VOID | KeAcquireSpinLock (IN PKSPIN_LOCK SpinLock, OUT PKIRQL OldIrql) |
VOID | KeReleaseSpinLock (IN PKSPIN_LOCK SpinLock, IN KIRQL NewIrql) |
BOOLEAN | ExAcquireResourceExclusive (IN PERESOURCE Resource, IN BOOLEAN Wait) |
Variables | |
MM_DRIVER_VERIFIER_DATA | MmVerifierData |
ULONG | VerifierModifyableOptions |
ULONG | VerifierOptionChanges |
LIST_ENTRY | MiSuspectDriverList |
LOGICAL | MiVerifyAllDrivers |
WCHAR | MiVerifyRandomDrivers |
ULONG | MiActiveVerifies |
ULONG | MiActiveVerifierThunks |
ULONG | MiNoPageOnRaiseIrql |
ULONG | MiVerifierStackProtectTime |
LOGICAL | MmDontVerifyRandomDrivers = TRUE |
LOGICAL | VerifierSystemSufficientlyBooted |
LARGE_INTEGER | VerifierRequiredTimeSinceBoot = {(ULONG)(40 * 1000 * 1000 * 10), 1} |
LOGICAL | VerifierIsTrackingPool = FALSE |
KSPIN_LOCK | VerifierListLock |
KSPIN_LOCK | VerifierPoolLock |
FAST_MUTEX | VerifierPoolMutex |
PRTL_BITMAP | VerifierLargePagedPoolMap |
LIST_ENTRY | MiVerifierDriverAddedThunkListHead |
LOGICAL | MmSpecialPoolCatchOverruns |
LOGICAL | KernelVerifier = FALSE |
ULONG | KernelVerifierTickPage = 0x7 |
KSPIN_LOCK | ViBadMapperLock |
PVOID | ViBadMappers [VI_BAD_MAPPERS_MAX] |
int | VerifierIrqlData [0x10] |
PUNICODE_STRING | ViBadDriver |
WCHAR | Printable [] = L"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" |
ULONG | PrintableChars = sizeof (Printable) / sizeof (Printable[0]) - 1 |
VERIFIER_THUNKS | MiVerifierThunks [] |
|
Definition at line 3843 of file verifier.c. |
|
Definition at line 4511 of file verifier.c. |
|
Value: Definition at line 4042 of file verifier.c. |
|
Definition at line 22 of file verifier.c. |
|
Definition at line 3112 of file verifier.c. Referenced by RtlIsTextUnicode(). |
|
Definition at line 3110 of file verifier.c. Referenced by RtlIsTextUnicode(). |
|
Definition at line 3109 of file verifier.c. Referenced by RtlIsTextUnicode(). |
|
|
Definition at line 3108 of file verifier.c. Referenced by ECInsertText(), RetrieveNumberOfSpaces(), RetrieveTotalNumberOfSpaces(), RtlIsTextUnicode(), and WWSB_WriteChars(). |
|
Value:
Definition at line 3114 of file verifier.c. Referenced by MiInitializeDriverVerifierList(). |
|
Definition at line 4514 of file verifier.c. Referenced by MiEnableVerifier(). |
|
Definition at line 4513 of file verifier.c. Referenced by MiEnableVerifier(). |
|
Definition at line 626 of file verifier.c. Referenced by ViAddBadMapper(). |
|
Referenced by ViReservePoolAllocation(). |
|
Definition at line 4508 of file verifier.c. |
|
|
|
Referenced by MiEnableVerifier(), MiVerifierCheckThunks(), and MmAddVerifierThunks(). |
|
Definition at line 2358 of file verifier.c. Referenced by VerifierKeAcquireSpinLock(). |
|
Definition at line 2966 of file verifier.c. Referenced by VerifierKeLowerIrql(). |
|
Definition at line 2927 of file verifier.c. Referenced by VerifierKeRaiseIrql(). |
|
Definition at line 2399 of file verifier.c. Referenced by VerifierKeReleaseSpinLock(). |
|
|
|
Referenced by MiEnableVerifier(). |
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 2283 of file verifier.c. References APC_LEVEL, DISPATCH_LEVEL, HIGH_LEVEL, KeBugCheckEx(), and VerifierIrqlData. Referenced by VerifierKeLowerIrql(), and VerifierKeReleaseSpinLock().
|
|
Definition at line 2233 of file verifier.c. References APC_LEVEL, DISPATCH_LEVEL, HIGH_LEVEL, KeBugCheckEx(), and VerifierIrqlData. Referenced by VerifierKeAcquireSpinLock(), VerifierKeRaiseIrql(), and VerifierSynchronizeExecution().
|
|
Definition at line 3448 of file verifier.c. References ExAllocatePoolWithTag, FALSE, KernelVerifier, KiStackProtectTime, MI_VERIFIER_DRIVER_ENTRY, MiActiveVerifies, MiEnableRandomSpecialPool(), MiEnableVerifier(), MiFaultRetries, MiIoRetryLevel, MiSuspectDriverList, MiUserFaultRetries, MiUserIoRetryLevel, MiVerifierStackProtectTime, MiVerifyAllDrivers, MiVerifyRandomDrivers, MmVerifierData, NonPagedPool, NULL, RtlEqualUnicodeString(), RtlUpcaseUnicodeChar(), TRUE, VI_VERIFYING_DIRECTLY, VI_VERIFYING_INVERSELY, ViInitializeEntry(), ViInsertVerifierEntry(), and ViPrintString(). Referenced by MiInitializeDriverVerifierList(), and MiLoadSystemImage().
|
|
Definition at line 4712 of file verifier.c. References FALSE, _VERIFIER_THUNKS::Flag, KernelVerifier, MiVerifierDriverAddedThunkListHead, MiVerifierThunks, _VERIFIER_THUNKS::NewRoutine, NULL, _DRIVER_SPECIFIED_VERIFIER_THUNKS::NumberOfThunks, PDRIVER_SPECIFIED_VERIFIER_THUNKS, _VERIFIER_THUNKS::PristineRoutine, PVERIFIER_THUNKS, RtlImageDirectoryEntryToData(), TRUE, VERIFIER_POOL_ROUTINE, and VERIFIER_THUNK_IN_HAL. Referenced by MiApplyDriverVerifier().
|
|
Definition at line 3121 of file verifier.c. References _MI_VERIFIER_DRIVER_ENTRY::BaseName, End, ExAllocatePoolWithTag, ExInitializeFastMutex, FALSE, _MI_VERIFIER_DRIVER_ENTRY::Flags, IoVerifierInit(), IOVERIFIERINIT_EVERYTHING_TRACKED, IOVERIFIERINIT_PHASE0, IOVERIFIERINIT_VERIFIER_DRIVER_LIST, KeInitializeSpinLock(), KeQueryPerformanceCounter(), KernelVerifier, L, MI_VERIFIER_DRIVER_ENTRY, MiApplyDriverVerifier(), MiSuspectDriverList, MiTriageAddDrivers(), MiVerifierDriverAddedThunkListHead, MiVerifyAllDrivers, MiVerifyRandomDrivers, MmDontVerifyRandomDrivers, MmVerifierData, MmVerifyDriverBuffer, MmVerifyDriverBufferLength, MmVerifyDriverLevel, NonPagedPool, NULL, RtlEqualUnicodeString(), RtlInitUnicodeString(), Start, TRUE, UNICODE_WHITESPACE, USHORT, VerifierListLock, VerifierModifyableOptions, VerifierPoolLock, VerifierPoolMutex, VI_VERIFYING_DIRECTLY, ViBadMapperLock, ViInitializeEntry(), and ViInsertVerifierEntry(). Referenced by MmInitSystem().
|
|
Referenced by MmUnloadSystemImage(). |
|
Definition at line 3625 of file verifier.c. References ASSERT, _MI_VERIFIER_DRIVER_ENTRY::BaseName, _MI_VERIFIER_DRIVER_ENTRY::CurrentNonPagedPoolAllocations, _MI_VERIFIER_DRIVER_ENTRY::CurrentPagedPoolAllocations, DbgPrint, _MI_VERIFIER_DRIVER_ENTRY::EndAddress, ExFreePool(), FALSE, KeBugCheckEx(), KernelVerifier, KiStackProtectTime, MiActiveVerifies, MiEnableRandomSpecialPool(), MiNoPageOnRaiseIrql, MiSuspectDriverList, MiVerifierStackProtectTime, MmVerifierData, _MI_VERIFIER_DRIVER_ENTRY::NonPagedBytes, NULL, _MI_VERIFIER_DRIVER_ENTRY::PagedBytes, _MI_VERIFIER_DRIVER_ENTRY::PoolHash, _MI_VERIFIER_DRIVER_ENTRY::PoolHashFree, _MI_VERIFIER_DRIVER_ENTRY::PoolHashReserved, _MI_VERIFIER_DRIVER_ENTRY::PoolHashSize, RtlEqualUnicodeString(), _MI_VERIFIER_DRIVER_ENTRY::StartAddress, TRUE, _MI_VERIFIER_DRIVER_ENTRY::Unloads, VerifierListLock, _MI_VERIFIER_DRIVER_ENTRY::VerifierPoolLock, VI_POOL_FREELIST_END, and ViBadDriver. Referenced by MmUnloadSystemImage().
|
|
Definition at line 3846 of file verifier.c. References _DRIVER_SPECIFIED_VERIFIER_THUNKS::DataTableEntry, ExAllocatePoolWithTag, ExFreePool(), FALSE, KeEnterCriticalRegion, KeLeaveCriticalRegion, KeReleaseMutant(), KernelMode, KeWaitForSingleObject(), KSEG0_BASE, _DRIVER_SPECIFIED_VERIFIER_THUNKS::ListEntry, MiActiveVerifierThunks, MiLookupDataTableEntry(), MiVerifierDriverAddedThunkListHead, MM_BOOT_IMAGE_SIZE, MmSystemLoadLock, NULL, _DRIVER_SPECIFIED_VERIFIER_THUNKS::NumberOfThunks, PAGED_CODE, PagedPool, PDRIVER_SPECIFIED_VERIFIER_THUNKS, TRUE, and WrVirtualMemory. Referenced by NtSetSystemInformation().
|
|
Definition at line 4046 of file verifier.c. References _MI_VERIFIER_DRIVER_ENTRY::BaseName, _MI_VERIFIER_DRIVER_ENTRY::CurrentNonPagedPoolAllocations, _MI_VERIFIER_DRIVER_ENTRY::CurrentPagedPoolAllocations, EXCEPTION_EXECUTE_HANDLER, ExRaiseStatus(), FALSE, _MI_VERIFIER_DRIVER_ENTRY::Flags, KeEnterCriticalRegion, KeLeaveCriticalRegion, KeReleaseMutant(), KernelMode, KeWaitForSingleObject(), _MI_VERIFIER_DRIVER_ENTRY::Loads, MiSuspectDriverList, MmSystemLoadLock, MmVerifierData, _MI_VERIFIER_DRIVER_ENTRY::NonPagedBytes, NTSTATUS(), NULL, PAGED_CODE, _MI_VERIFIER_DRIVER_ENTRY::PagedBytes, _MI_VERIFIER_DRIVER_ENTRY::PeakNonPagedBytes, _MI_VERIFIER_DRIVER_ENTRY::PeakNonPagedPoolAllocations, _MI_VERIFIER_DRIVER_ENTRY::PeakPagedBytes, _MI_VERIFIER_DRIVER_ENTRY::PeakPagedPoolAllocations, ROUND_UP, Status, _MI_VERIFIER_DRIVER_ENTRY::Unloads, VI_VERIFYING_DIRECTLY, and WrVirtualMemory. Referenced by NtQuerySystemInformation().
|
|
Definition at line 3802 of file verifier.c. References FALSE, NULL, and TRUE. Referenced by IovpIsInterestingDriver().
|
|
Definition at line 4226 of file verifier.c. References EXCEPTION_EXECUTE_HANDLER, ExRaiseStatus(), FALSE, KeEnterCriticalRegion, KeLeaveCriticalRegion, KeReleaseMutant(), KernelMode, KeWaitForSingleObject(), MmSystemLoadLock, MmVerifierData, NTSTATUS(), NULL, PAGED_CODE, Status, VerifierModifyableOptions, VerifierOptionChanges, and WrVirtualMemory. Referenced by NtSetSystemInformation().
|
|
|
Definition at line 927 of file verifier.c. References ExAllocatePool, _MI_VERIFIER_DRIVER_ENTRY::Flags, HighPoolPriority, KernelVerifier, MmVerifierData, NULL, POOL_DRIVER_MASK, RtlGetCallersAddress(), TRUE, VeAllocatePoolWithTagPriority(), VI_VERIFYING_DIRECTLY, and ViLocateVerifierEntry().
|
|
Definition at line 1003 of file verifier.c. References ExAllocatePoolWithQuota, ExRaiseStatus(), FALSE, _MI_VERIFIER_DRIVER_ENTRY::Flags, HighPoolPriority, KernelVerifier, MmVerifierData, NULL, POOL_DRIVER_MASK, POOL_QUOTA_FAIL_INSTEAD_OF_RAISE, RtlGetCallersAddress(), TRUE, VeAllocatePoolWithTagPriority(), VI_VERIFYING_DIRECTLY, and ViLocateVerifierEntry().
|
|
|
|
Definition at line 965 of file verifier.c. References ExAllocatePoolWithTag, _MI_VERIFIER_DRIVER_ENTRY::Flags, HighPoolPriority, KernelVerifier, NULL, POOL_DRIVER_MASK, RtlGetCallersAddress(), TRUE, VeAllocatePoolWithTagPriority(), VI_VERIFYING_DIRECTLY, and ViLocateVerifierEntry().
|
|
Definition at line 1115 of file verifier.c. References ExAllocatePoolWithTagPriority(), _MI_VERIFIER_DRIVER_ENTRY::Flags, KernelVerifier, NULL, POOL_DRIVER_MASK, RtlGetCallersAddress(), TRUE, VeAllocatePoolWithTagPriority(), VI_VERIFYING_DIRECTLY, and ViLocateVerifierEntry().
|
|
Definition at line 2815 of file verifier.c. References APC_LEVEL, and KeBugCheckEx().
|
|
Definition at line 2841 of file verifier.c. References APC_LEVEL, ExAcquireFastMutexUnsafe(), IS_SYSTEM_THREAD, KeBugCheckEx(), KeGetCurrentThread, and PsGetCurrentThread.
|
|
Definition at line 2182 of file verifier.c. References APC_LEVEL, ExAcquireResourceExclusiveLite(), IS_SYSTEM_THREAD, KeBugCheckEx(), KeGetCurrentThread, PsGetCurrentThread, and Resource.
|
|
Definition at line 2870 of file verifier.c. References APC_LEVEL, IS_SYSTEM_THREAD, KeBugCheckEx(), KeGetCurrentThread, and PsGetCurrentThread.
|
|
Definition at line 2899 of file verifier.c. References APC_LEVEL, ExReleaseFastMutexUnsafe(), IS_SYSTEM_THREAD, KeBugCheckEx(), KeGetCurrentThread, and PsGetCurrentThread.
|
|
Definition at line 2208 of file verifier.c. References APC_LEVEL, ExReleaseResourceLite(), IS_SYSTEM_THREAD, KeBugCheckEx(), KeGetCurrentThread, PsGetCurrentThread, and Resource.
|
|
Definition at line 2789 of file verifier.c. References APC_LEVEL, and KeBugCheckEx().
|
|
Definition at line 2129 of file verifier.c. References ExFreePool(), KernelVerifier, TRUE, and VerifierFreePoolWithTag().
|
|
Definition at line 2143 of file verifier.c. References ExFreePoolSanityChecks(), ExFreePoolWithTag, KernelVerifier, and TRUE. Referenced by VerifierFreePool().
|
|
Referenced by ExFreePoolWithTag(), MiFreePoolPages(), and MmFreeSpecialPool(). |
|
|
|
Definition at line 2365 of file verifier.c. References DISPATCH_LEVEL, KeAcquireSpinLock, KfSanityCheckRaiseIrql(), MmVerifierData, PKE_ACQUIRE_SPINLOCK, and ViTrimAllSystemPagableMemory().
|
|
Definition at line 3039 of file verifier.c. References VerifierKeInitializeTimerEx().
|
|
Definition at line 3020 of file verifier.c. References KeCheckForTimer(), KeInitializeTimerEx(), KiTimerTableListHead, and NULL. Referenced by VerifierKeInitializeTimer().
|
|
Definition at line 2972 of file verifier.c. References KeLowerIrql(), KfSanityCheckLowerIrql(), and PKE_LOWER_IRQL.
|
|
Definition at line 2934 of file verifier.c. References DISPATCH_LEVEL, KeRaiseIrql(), KfSanityCheckRaiseIrql(), MmVerifierData, PKE_RAISE_IRQL, and ViTrimAllSystemPagableMemory().
|
|
|
|
Definition at line 2406 of file verifier.c. References DISPATCH_LEVEL, KeBugCheckEx(), KeReleaseSpinLock(), KfSanityCheckLowerIrql(), and PKE_RELEASE_SPINLOCK.
|
|
|
|
|
|
|
|
|
|
Definition at line 662 of file verifier.c. References DISPATCH_LEVEL, KeBugCheckEx(), MmMapIoSpace(), NULL, TRUE, and ViInjectResourceFailure().
|
|
Definition at line 688 of file verifier.c. References APC_LEVEL, DbgPrint, DISPATCH_LEVEL, KeBugCheckEx(), KernelMode, MDL_MAPPING_CAN_FAIL, MmMapLockedPages(), RtlGetCallersAddress(), TRUE, and ViAddBadMapper().
|
|
Definition at line 751 of file verifier.c. References APC_LEVEL, DbgPrint, DISPATCH_LEVEL, KeBugCheckEx(), KernelMode, MDL_MAPPING_CAN_FAIL, MmMapLockedPagesSpecifyCache(), NULL, RtlGetCallersAddress(), TRUE, ViAddBadMapper(), and ViInjectResourceFailure().
|
|
Definition at line 537 of file verifier.c. References DISPATCH_LEVEL, ExRaiseStatus(), KeBugCheckEx(), MmProbeAndLockPages(), TRUE, and ViInjectResourceFailure().
|
|
Definition at line 563 of file verifier.c. References DISPATCH_LEVEL, ExRaiseStatus(), KeBugCheckEx(), MmProbeAndLockProcessPages(), TRUE, and ViInjectResourceFailure().
|
|
Definition at line 593 of file verifier.c. References APC_LEVEL, ExRaiseStatus(), KeBugCheckEx(), MmProbeAndLockSelectedPages(), TRUE, and ViInjectResourceFailure().
|
|
Definition at line 2160 of file verifier.c. References DISPATCH_LEVEL, Event(), Increment, KeBugCheckEx(), and KeSetEvent().
|
|
Definition at line 2993 of file verifier.c. References DISPATCH_LEVEL, KeSynchronizeExecution(), KfSanityCheckRaiseIrql(), MmVerifierData, and ViTrimAllSystemPagableMemory().
|
|
Definition at line 829 of file verifier.c. References DISPATCH_LEVEL, KeBugCheckEx(), MDL_PAGES_LOCKED, MDL_SOURCE_IS_NONPAGED_POOL, and MmUnlockPages().
|
|
Definition at line 906 of file verifier.c. References DISPATCH_LEVEL, KeBugCheckEx(), and MmUnmapIoSpace().
|
|
Definition at line 874 of file verifier.c. References APC_LEVEL, DISPATCH_LEVEL, KeBugCheckEx(), and MmUnmapLockedPages().
|
|
Definition at line 632 of file verifier.c. References FALSE, NULL, TRUE, VI_BAD_MAPPERS_MAX, ViBadMapperLock, and ViBadMappers. Referenced by VerifierMapLockedPages(), and VerifierMapLockedPagesSpecifyCache().
|
|
Definition at line 1566 of file verifier.c. References ASSERT, and VI_POOL_FREELIST_END. Referenced by VeAllocatePoolWithTagPriority().
|
|
Definition at line 3047 of file verifier.c. References KeInitializeSpinLock(), MI_VERIFIER_ENTRY_SIGNATURE, NULL, TRUE, VerifierListLock, and VI_POOL_FREELIST_END. Referenced by MiApplyDriverVerifier(), and MiInitializeDriverVerifierList().
|
|
Definition at line 1168 of file verifier.c. References FALSE, KeBootTime, KeQuerySystemTime(), KeQueryTickCount(), MmVerifierData, TRUE, VerifierRequiredTimeSinceBoot, and VerifierSystemSufficientlyBooted. Referenced by VeAllocatePoolWithTagPriority(), VerifierMapIoSpace(), VerifierMapLockedPagesSpecifyCache(), VerifierProbeAndLockPages(), VerifierProbeAndLockProcessPages(), and VerifierProbeAndLockSelectedPages().
|
|
Definition at line 1369 of file verifier.c. References ASSERT, _VI_POOL_ENTRY_INUSE::CallingAddress, DISPATCH_LEVEL, _VI_POOL_ENTRY::FreeListNext, Index, _VI_POOL_ENTRY::InUse, _VI_POOL_ENTRY_INUSE::NumberOfBytes, _VI_POOL_ENTRY_INUSE::Tag, VI_POOL_FREELIST_END, and _VI_POOL_ENTRY_INUSE::VirtualAddress. Referenced by ViPostPoolAllocation().
|
|
Definition at line 3360 of file verifier.c. References MiSuspectDriverList, and VerifierListLock. Referenced by MiApplyDriverVerifier(), and MiInitializeDriverVerifierList().
|
|
Definition at line 3396 of file verifier.c. References _MI_VERIFIER_DRIVER_ENTRY::EndAddress, MiSuspectDriverList, NULL, _MI_VERIFIER_DRIVER_ENTRY::StartAddress, and VerifierListLock. Referenced by VeAllocatePoolWithTagPriority(), VerifierAllocatePool(), VerifierAllocatePoolWithQuota(), VerifierAllocatePoolWithQuotaTag(), VerifierAllocatePoolWithTag(), VerifierAllocatePoolWithTagPriority(), and ViPostPoolAllocation().
|
|
Definition at line 1614 of file verifier.c. References ASSERT, BASE_POOL_TYPE_MASK, BYTE_OFFSET, _MI_VERIFIER_DRIVER_ENTRY::CurrentNonPagedPoolAllocations, _MI_VERIFIER_DRIVER_ENTRY::CurrentPagedPoolAllocations, EX_REAL_POOL_USAGE, FALSE, Header, MI_SPECIAL_POOL_VERIFIER, MI_VERIFIER_POOL_HEADER, MmSpecialPoolEnd, MmSpecialPoolStart, MmVerifierData, _MI_VERIFIER_DRIVER_ENTRY::NonPagedBytes, NULL, PAGE_ALIGN, PAGE_SIZE, _MI_VERIFIER_DRIVER_ENTRY::PagedBytes, PagedPool, _MI_VERIFIER_DRIVER_ENTRY::PeakNonPagedBytes, _MI_VERIFIER_DRIVER_ENTRY::PeakNonPagedPoolAllocations, _MI_VERIFIER_DRIVER_ENTRY::PeakPagedBytes, _MI_VERIFIER_DRIVER_ENTRY::PeakPagedPoolAllocations, PMI_VERIFIER_POOL_HEADER, POOL_BUDDY_MAX, POOL_OVERHEAD, POOL_VERIFIER_MASK, TRUE, _POOL_HEADER::Ulong1, VerifierIsTrackingPool, VerifierPoolLock, _MI_VERIFIER_DRIVER_ENTRY::VerifierPoolLock, VerifierPoolMutex, ViInsertPoolAllocation(), and ViLocateVerifierEntry(). Referenced by VeAllocatePoolWithTagPriority().
|
|
Definition at line 4336 of file verifier.c. References _VERIFIER_STRING_INFO::BuildNumber, _VERIFIER_STRING_INFO::Check, DbgPrint, _VERIFIER_STRING_INFO::DriverVerifierLevel, FALSE, _VERIFIER_STRING_INFO::Flags, L, MmVerifierData, NtBuildNumber, Printable, PrintableChars, RtlUpcaseUnicodeChar(), TRUE, and USHORT. Referenced by MiApplyDriverVerifier().
|
|
Definition at line 1447 of file verifier.c. References ASSERT, DISPATCH_LEVEL, _VI_POOL_ENTRY::FreeListNext, _VI_POOL_ENTRY::InUse, KeBugCheckEx(), MI_CONVERT_PHYSICAL_TO_PFN, MI_GET_PAGE_FRAME_FROM_PTE, MI_IS_PHYSICAL_ADDRESS, MiGetPteAddress, NULL, _VI_POOL_ENTRY_INUSE::NumberOfBytes, _MMPTE::u, and _VI_POOL_ENTRY_INUSE::VirtualAddress. Referenced by VerifierFreeTrackedPool().
|
|
Definition at line 1233 of file verifier.c. References ASSERT, ExAllocatePoolWithTagPriority(), ExFreePool(), FALSE, _VI_POOL_ENTRY::FreeListNext, HighPoolPriority, Increment, NonPagedPool, NULL, PAGE_SIZE, POOL_DRIVER_MASK, PVI_POOL_ENTRY, TRUE, VI_POOL_ENTRIES_PER_PAGE, and VI_POOL_ENTRY. Referenced by VeAllocatePoolWithTagPriority().
|
|
Definition at line 2333 of file verifier.c. References FALSE, KeQueryTickCount(), KernelVerifier, KernelVerifierTickPage, MiNoPageOnRaiseIrql, MmTrimAllSystemPagableMemory(), MmVerifierData, and TRUE. Referenced by VerifierKeAcquireSpinLock(), VerifierKeRaiseIrql(), and VerifierSynchronizeExecution().
|
|
Definition at line 404 of file verifier.c. |
|
Definition at line 406 of file verifier.c. Referenced by ViTrimAllSystemPagableMemory(). |
|
Definition at line 378 of file verifier.c. Referenced by MiVerifierCheckThunks(), MmAddVerifierThunks(), and MmUnloadSystemImage(). |
|
Definition at line 376 of file verifier.c. Referenced by MiApplyDriverVerifier(), and MiVerifyingDriverUnloading(). |
|
Definition at line 380 of file verifier.c. Referenced by MiVerifyingDriverUnloading(), and ViTrimAllSystemPagableMemory(). |
|
Definition at line 370 of file verifier.c. Referenced by MiApplyDriverVerifier(), MiInitializeDriverVerifierList(), MiVerifyingDriverUnloading(), MmGetVerifierInformation(), ViInsertVerifierEntry(), and ViLocateVerifierEntry(). |
|
Definition at line 400 of file verifier.c. Referenced by MiEnableVerifier(), MiInitializeDriverVerifierList(), MiVerifierCheckThunks(), and MmAddVerifierThunks(). |
|
Definition at line 382 of file verifier.c. Referenced by MiApplyDriverVerifier(), and MiVerifyingDriverUnloading(). |
|
Definition at line 4516 of file verifier.c. Referenced by MiEnableVerifier(). |
|
Definition at line 372 of file verifier.c. Referenced by MiApplyDriverVerifier(), and MiInitializeDriverVerifierList(). |
|
Definition at line 374 of file verifier.c. Referenced by MiApplyDriverVerifier(), and MiInitializeDriverVerifierList(). |
|
Definition at line 384 of file verifier.c. |
|
Definition at line 402 of file verifier.c. |
|
Definition at line 361 of file verifier.c. |
|
Definition at line 4332 of file verifier.c. Referenced by ViPrintString(). |
|
Definition at line 4333 of file verifier.c. Referenced by ViPrintString(). |
|
Definition at line 2230 of file verifier.c. Referenced by KfSanityCheckLowerIrql(), and KfSanityCheckRaiseIrql(). |
|
Definition at line 390 of file verifier.c. Referenced by VerifierFreeTrackedPool(), and ViPostPoolAllocation(). |
|
Definition at line 398 of file verifier.c. Referenced by MiAllocatePoolPages(), MiBuildPagedPool(), and MiFreePoolPages(). |
|
Definition at line 392 of file verifier.c. Referenced by MiInitializeDriverVerifierList(), MiVerifyingDriverUnloading(), ViInitializeEntry(), ViInsertVerifierEntry(), and ViLocateVerifierEntry(). |
|
Definition at line 367 of file verifier.c. Referenced by MiInitializeDriverVerifierList(), and MmSetVerifierInformation(). |
|
Definition at line 368 of file verifier.c. Referenced by MmSetVerifierInformation(). |
|
Definition at line 394 of file verifier.c. Referenced by MiInitializeDriverVerifierList(), VerifierFreeTrackedPool(), and ViPostPoolAllocation(). |
|
Definition at line 396 of file verifier.c. Referenced by MiInitializeDriverVerifierList(), VerifierFreeTrackedPool(), and ViPostPoolAllocation(). |
|
Definition at line 388 of file verifier.c. Referenced by ViInjectResourceFailure(). |
|
Definition at line 386 of file verifier.c. Referenced by ViInjectResourceFailure(). |
|
Definition at line 3622 of file verifier.c. Referenced by MiVerifyingDriverUnloading(). |
|
Definition at line 628 of file verifier.c. Referenced by MiInitializeDriverVerifierList(), and ViAddBadMapper(). |
|
Definition at line 629 of file verifier.c. Referenced by ViAddBadMapper(). |