KS_FRAMING_ITEM結構 (ks.h)
KS_FRAMING_ITEM 結構可用來在內核模式針腳上宣告配置器需求。
語法
typedef struct {
GUID MemoryType;
GUID BusType;
ULONG MemoryFlags;
ULONG BusFlags;
ULONG Flags;
ULONG Frames;
union {
ULONG FileAlignment;
LONG FramePitch;
};
ULONG MemoryTypeWeight;
KS_FRAMING_RANGE PhysicalRange;
KS_FRAMING_RANGE_WEIGHTED FramingRange;
} KS_FRAMING_ITEM, *PKS_FRAMING_ITEM;
成員
MemoryType
指定用於緩衝區和數據框架的記憶體類型。 此成員與 KSALLOCATOR_FRAMING 結構中的 PoolType 成員之間有部分對應。 這兩個成員不同,PoolType 只允許分頁或非分頁集區。 MemoryType 可以有下表所列的任何值。
價值 | 描述 |
---|---|
KSMEMORY_TYPE_WILDCARD/ KSMEMORY_TYPE_DONT_CARE / KSTYPE_DONT_CARE | 表示記憶體配置可以是任何類型的記憶體。 |
KSMEMORY_TYPE_SYSTEM | 表示記憶體配置必須是系統記憶體。 |
KSMEMORY_TYPE_USER | 表示記憶體配置必須是使用者模式記憶體。 |
KSMEMORY_TYPE_KERNEL_PAGED | 表示記憶體配置必須是核心分頁記憶體。 這會對應至設定為 pagedPool KSALLOCATOR_FRAMING 結構的 PoolType 成員,以及設定 為 SYSTEM_MEMORY 之此結構 成員的 RequirementsFlags 成員。 |
KSMEMORY_TYPE_KERNEL_NONPAGED | 表示記憶體配置必須是核心非分頁記憶體。 這會對應至設定 為 nonPagedPool 之 KSALLOCATOR_FRAMING 結構的 PoolType 成員,以及此結構 成員設定為 SYSTEM_MEMORY。 |
KSMEMORY_TYPE_DEVICE_UNKNOWN | 表示未指定裝置記憶體配置類型。 |
BusType
指定存取 MemoryType所指定之物理記憶體的實體總線。 使用此欄位根據用於連接媒體的總線來判斷相容的記憶體類型。 當針腳根據連線媒體公開不同的記憶體類型時,這項區別非常重要。 BusType 可以有下表所列的任何值。
類型 | 描述 |
---|---|
GUID_BUS_TYPE_PCI | 周邊元件互連總線。 |
GUID_BUS_TYPE_USB | 通用序列總線。 |
GUID_BUS_TYPE_1394 | IEEE 1394 序列總線。 |
GUID_BUS_TYPE_AVC | 音訊/視訊控制總線。 |
GUID_61883_CLASS | 61883 通訊協定總線。 |
MemoryFlags
指定連接點負責畫面配置。 應設定為 KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE。
BusFlags
未使用。
Flags
類似於 KSALLOCATOR_FRAMING 結構中的 OptionsFlags 和 RequirementsFlags 等位,加上新增管道支援的旗標。
Frames
指定允許的未完成畫面格總數。 對應至 KSALLOCATOR_FRAMING 結構的 框架 成員。
FileAlignment
框架對齊的需求。 對應至 KSALLOCATOR_FRAMING 結構的 FileAlignment 成員。
FramePitch
定義 LONG 成員 FramePitch。
MemoryTypeWeight
類型為 ULONG 的值,指定此記憶體類型的針腳寬度權數。
PhysicalRange
類型為 KS_FRAMING_RANGE 的結構,指定框架大小的實體限制。
FramingRange
類型為 KS_FRAMING_RANGE_WEIGHTED 的結構,指定畫面大小的最佳範圍。
言論
請勿將 KSALLOCATOR_FLAG_CAN_ALLOCATE 設定為表示記憶體尋址功能。 篩選條件可透過裝置特定總線存取裝置特定記憶體,方法是參考此總線上的記憶體位址,但尚不支援通訊協定來配置此裝置特定記憶體。
每個 KSALLOCATOR_FRAMING_EX 實例都包含一或多個框架專案。
要求
要求 | 價值 |
---|---|
標頭 | ks.h (包括 Ks.h) |