estrutura KSALLOCATOR_FRAMING (ks.h)

A estrutura KSALLOCATOR_FRAMING é usada para consultar requisitos de enquadramento e enviar solicitações de criação do alocador.

Sintaxe

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;

Membros

OptionsFlags

Especifica os sinalizadores de opção do alocador especificados durante a criação do alocador para o ponto de conexão. O membro OptionsFlags pode conter um dos valores a seguir.

OptionsFlags Descrição
KSALLOCATOR_OPTIONF_COMPATIBLE Indica que as opções de enquadramento do alocador que está sendo criado são compatíveis com o alocador downstream. Essa opção normalmente é especificada quando um modificador in-loco recebe um alocador para buffers de cópia. Se o filtro não for necessário para modificar um determinado quadro, ele poderá enviar o quadro para o filtro downstream sem alocar um quadro adicional do alocador downstream quando essa opção for especificada.
KSALLOCATOR_OPTIONF_SYSTEM_MEMORY Indica que a memória do sistema deve ser usada para alocações. Quando especificado, o alocador deve alocar memória do pool, conforme especificado no membro PoolType . Caso contrário, supõe-se que o coletor forneça um mapeamento de endereço do sistema para RAM integrada ou outras formas de armazenamento no dispositivo.

RequirementsFlags

Um valor do tipo ULONG que descreve os requisitos do alocador para esse ponto de conexão para operações de consulta. O membro RequirementsFlags pode conter os valores a seguir.

Valor de sinalizador Descrição
KSALLOCATOR_REQUIREMENTF_INPLACE_MODIFIER Indica que o ponto de conexão pode executar uma modificação in-loco.
KSALLOCATOR_REQUIREMENTF_SYSTEM_MEMORY Indica que o ponto de conexão requer memória do sistema para alocações. Se essa opção não estiver definida, supõe-se que o coletor forneça um mapeamento de espaço de endereço do sistema para RAM integrada ou outras formas de armazenamento no dispositivo.
KSALLOCATOR_REQUIREMENTF_FRAME_INTEGRITY Indica que o ponto de conexão requer que os filtros downstream mantenham a integridade dos dados dos quadros especificados.
KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE Indica que o ponto de conexão requer que ele aloque todos os quadros enviados.
KSALLOCATOR_REQUIREMENTF_PREFERENCES_ONLY Indica que os sinalizadores requisitos são apenas preferências e o ponto de conexão é capaz de alocar quadros que não atendem a essas especificações.

PoolType

Uma estrutura do tipo POOL_TYPE que especifica o tipo de pool de alocação do modo kernel.

Frames

Especifica o número total de quadros pendentes permitidos. Zero indica que o filtro não tem nenhum requisito para esse membro.

FrameSize

Especifica o tamanho total do quadro, incluindo prefixo e postfixo. Zero indica que o filtro não tem nenhum requisito para esse membro.

FileAlignment

Um valor do tipo ULONG que descreve o alinhamento de bytes a ser usado ao alocar quadros. A tabela a seguir descreve vários valores de alinhamento possíveis.

Valor Descrição
FILE_BYTE_ALIGNMENT Alinhamento de 1 byte
FILE_WORD_ALIGNMENT Alinhamento de 2 bytes
FILE_LONG_ALIGNMENT Alinhamento de 4 bytes
FILE_32_BYTE_ALIGNMENT Alinhamento de 32 bytes
FILE_64_BYTE_ALIGNMENT Alinhamento de 64 bytes

FramePitch

Reserved

Reservado para uso do sistema. Defina como zero.

Comentários

Use KSALLOCATOR_FRAMING para enviar uma solicitação de criação de alocador para um identificador de um coletor usando IRP_MJ_CREATE.

Quando você especifica um valor para o membro FileAlignment , o menor alinhamento de alocação é de 1 byte (FILE_BYTE_ALIGNMENT). O software que funciona como uma alocação deve dar suporte ao alinhamento de 4 bytes (FILE_LONG_ALIGNMENT), se possível.

Requisitos

Requisito Valor
Cabeçalho ks.h (inclua Ks.h)

Confira também

KsCreateAllocator