DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION structure (wdm.h)
Defines a configuration that further describes constraints and features when creating a common buffer. The driver can provide an array of DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION structures in the CreateCommonBufferFromMdl callback routine.
Syntax
typedef struct _DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION {
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE ConfigType;
union {
struct {
PHYSICAL_ADDRESS MinimumAddress;
PHYSICAL_ADDRESS MaximumAddress;
} LogicalAddressLimits;
struct {
ULONGLONG Offset;
ULONG Length;
} SubSection;
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE HardwareAccessType;
ULONGLONG Reserved[4];
};
} DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION, *PDMA_COMMON_BUFFER_EXTENDED_CONFIGURATION;
Members
ConfigType
A DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE-typed value that indicates the type of common buffer extended configuration this instance represents.
LogicalAddressLimits
When ConfigType is CommonBufferConfigTypeLogicalAddressLimits, describes the logical address limits for the common buffer being created.
LogicalAddressLimits.MinimumAddress
Provides the (inclusive) minimum starting logical address of the common buffer being created.
LogicalAddressLimits.MaximumAddress
Provides the (inclusive) maximum final logical address of the common buffer being created.
SubSection
When ConfigType is CommonBufferConfigTypeSubSection, describes the subsection within a backing MDL that should be used to back the common buffer being created.
A subsection must only be contained within a single MDL in an MDL chain.
SubSection.Offset
Provides the offset into the MDL to indicate the starting address of the common buffer. Must be page-aligned.
SubSection.Length
Provides the length of the common buffer subsection. Must be page-aligned.
HardwareAccessType
When ConfigType is CommonBufferConfigTypeHardwareAccessPermissions, this is a DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE-typed value that describes the hardware access permissions for the common buffer being created.
Common buffer creation fails if the access type is not possible on the system. ReadOnly and WriteOnly are only permissible if the DMA Adapter is using DMA Remapping.
Reserved[4]
This field is unused.
Remarks
The extended configurations are an optional parameter for the CreateCommonBufferFromMdl callback routine.
If no extended configurations are provided, common buffer creation uses the entire MDL as backing memory, with a minimum logical address of zero and a maximum logical address defined by the DMA_ADAPTER being used.
Requirements
Requirement | Value |
---|---|
Minimum supported server | Windows Server 2022 |
Header | wdm.h |
See also
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_TYPE enumeration
DMA_COMMON_BUFFER_EXTENDED_CONFIGURATION_ACCESS_TYPE enumeration
PCREATE_COMMON_BUFFER_FROM_MDL callback routine