KSALLOCATOR_FRAMING 結構 (ks.h)

KSALLOCATOR_FRAMING結構可用來查詢框架需求,並提交配置器建立要求。

語法

typedef struct {
  union {
    ULONG OptionsFlags;
    ULONG RequirementsFlags;
  };
#if ...
  POOL_TYPE PoolType;
#else
  ULONG     PoolType;
#endif
  ULONG     Frames;
  ULONG     FrameSize;
  union {
    ULONG FileAlignment;
    LONG  FramePitch;
  };
  ULONG     Reserved;
} KSALLOCATOR_FRAMING, *PKSALLOCATOR_FRAMING;

成員

OptionsFlags

指定配置器選項旗標,這個旗標會在配置器建立連接點期間指定。 OptionsFlags 成員可以包含下列其中一個值。

OptionsFlags Description
KSALLOCATOR_OPTIONF_COMPATIBLE 表示所建立配置器的框架選項與下游配置器相容。 當就地修飾詞指派複製緩衝區的配置器時,通常會指定這個選項。 如果篩選條件不需要修改指定的框架,它可能會將框架提交至下游篩選,而不需要在指定此選項時從下游配置器配置額外的畫面格。
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY 表示系統記憶體應該用於配置。 指定時,配置器必須配置集區中的記憶體,如 PoolType 成員中所指定。 否則,假設接收會提供系統地址對應至裝置上的 RAM 或其他形式的記憶體。

RequirementsFlags

ULONG 類型的值,描述查詢作業之這個連接點的配置器需求。 RequirementsFlags 成員可以包含下列值。

旗標值 Description
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER 表示連接點可以執行就地修改。
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY 表示連接點需要系統記憶體進行配置。 如果未設定此選項,則會假設接收會提供系統地址空間對應至裝置上的 RAM 或其他類型的儲存設備。
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY 表示連接點需要下游篩選條件維護指定框架的數據完整性。
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE 表示連接點要求它配置任何傳送的畫面。
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY 表示需求旗標僅供喜好設定,且連接點能夠配置不符合這些規格的畫面格。

PoolType

別POOL_TYPE 結構,指定內核模式配置集區類型。

Frames

指定允許的未處理畫面總數。 零表示篩選條件不需要此成員。

FrameSize

指定框架的總大小,包括前置詞和後置。 零表示篩選條件不需要此成員。

FileAlignment

ULONG 類型的值,描述配置畫面時要使用的位元組對齊方式。 下表描述數個可能的對齊值。

Description
FILE_BYTE_ALIGNMENT 1 位元組對齊
FILE_WORD_ALIGNMENT 2 位元組對齊
FILE_LONG_ALIGNMENT 4 位元組對齊
FILE_32_BYTE_ALIGNMENT 32 位元組對齊
FILE_64_BYTE_ALIGNMENT 64 位元組對齊

FramePitch

Reserved

保留供系統使用。 設定為零。

備註

使用 KSALLOCATOR_FRAMING,使用 IRP_MJ_CREATE 將配置器建立要求提交至接收的句柄。

當您指定 FileAlignment 成員的值時,最小配置對齊方式為 1 位元組 (FILE_BYTE_ALIGNMENT) 。 如果可能的話,以配置方式運作的軟體應該支援 4 位元組對齊 (FILE_LONG_ALIGNMENT) 。

規格需求

需求
標頭 ks.h (包含 Ks.h)

另請參閱

KsCreateAllocator