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) |