MEMORY_CACHING_TYPE enumeration (wdm.h)
The MEMORY_CACHING_TYPE enumeration type specifies the permitted caching behavior when allocating or mapping memory.
Syntax
typedef enum _MEMORY_CACHING_TYPE {
MmNonCached,
MmCached,
MmWriteCombined,
MmHardwareCoherentCached,
MmNonCachedUnordered,
MmUSWCCached,
MmMaximumCacheType,
MmNotMapped
} MEMORY_CACHING_TYPE;
Constants
MmNonCached The requested memory should not be cached by the processor. |
MmCached The processor should cache the requested memory. |
MmWriteCombined The requested memory should not be cached by the processor, but writes to the memory can be combined by the processor. |
MmHardwareCoherentCached Reserved for system use. |
MmNonCachedUnordered Reserved for system use. |
MmUSWCCached Reserved for system use. |
MmMaximumCacheType Reserved for system use. |
MmNotMapped |
Remarks
Processor translation buffers cache virtual to physical address translations. These translation buffers allow many virtual addresses to map a single physical address. However, only one caching behavior is allowed for any given physical address translation. Therefore, if a driver maps two different virtual address ranges to the same physical address, it must ensure that it specifies the same caching behavior for both. Otherwise, the processor behavior is undefined with unpredictable system results.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Supported in Windows 2000 and later versions of Windows. |
Header | wdm.h (include Ntddk.h, Wdm.h, Miniport.h, Wudfwdm.h) |
See also
MmAllocateContiguousMemorySpecifyCache
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for