структура 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 | Описание |
---|---|
KSALLOCATOR_OPTIONF_COMPATIBLE | Указывает, что параметры кадрирования создаваемого распределителя совместимы с подчиненным распределителем. Этот параметр обычно указывается, когда модификатору на месте назначается распределитель для буферов копирования. Если фильтр не требуется для изменения заданного кадра, он может отправить его в подчиненный фильтр без выделения дополнительного кадра из нижестоящего распределителя при указании этого параметра. |
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY | Указывает, что для выделения ресурсов следует использовать системную память. При указании распределителя необходимо выделить память из пула, как указано в элементе PoolType . В противном случае предполагается, что приемник обеспечивает сопоставление системных адресов с встроенной оперативной памятью или другими формами хранилища на устройстве. |
RequirementsFlags
Значение типа ULONG, описывающее требования к распределителю для этой точки подключения для операций запроса. Элемент RequirementsFlags может содержать следующие значения.
Значение флага | Описание |
---|---|
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER | Указывает, что точка подключения может выполнять изменение на месте. |
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY | Указывает, что точка подключения требует системной памяти для выделения ресурсов. Если этот параметр не задан, предполагается, что приемник предоставляет сопоставление системного адресного пространства с встроенной оперативной памятью или другими формами хранилища на устройстве. |
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY | Указывает, что точка подключения требует, чтобы подчиненные фильтры поддерживали целостность данных указанных кадров. |
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE | Указывает, что точка подключения должна выделить все отправленные кадры. |
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY | Указывает, что флаги Требования являются только предпочтениями, а точка подключения может выделять кадры, которые не соответствуют этим спецификациям. |
PoolType
Структура типа POOL_TYPE , указывающая тип пула выделения в режиме ядра.
Frames
Задает общее количество допустимых необработанных кадров. Ноль означает, что фильтр не имеет требования к этому элементу.
FrameSize
Указывает общий размер кадра, включая префикс и постфикс. Ноль означает, что фильтр не имеет требования к этому элементу.
FileAlignment
Значение типа ULONG, описывающее выравнивание байтов, используемое при выделении кадров. В следующей таблице описано несколько возможных значений выравнивания.
Значение | Описание |
---|---|
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) |