estrutura KS_FRAMING_ITEM (ks.h)
A estrutura KS_FRAMING_ITEM é usada para declarar os requisitos do alocador em um pino no modo kernel.
Sintaxe
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;
Membros
MemoryType
Especifica o tipo de memória usado para buffers e quadros de dados. Há uma correspondência parcial entre esse membro e o membro PoolType na estrutura KSALLOCATOR_FRAMING . Os dois membros diferem porque PoolType permite apenas pool paginado ou não paginado. MemoryType pode ter qualquer um dos valores listados na tabela a seguir.
Valor | Descrição |
---|---|
KSMEMORY_TYPE_WILDCARD/KSMEMORY_TYPE_DONT_CARE/KSTYPE_DONT_CARE | Indica que a alocação de memória pode ser qualquer tipo de memória. |
KSMEMORY_TYPE_SYSTEM | Indica que a alocação de memória deve ser memória do sistema. |
KSMEMORY_TYPE_USER | Indica que a alocação de memória deve ser memória no modo de usuário. |
KSMEMORY_TYPE_KERNEL_PAGED | Indica que a alocação de memória deve ser memória paginada de kernel. Isso corresponde ao membro PoolType da estrutura KSALLOCATOR_FRAMING definida como PagedPool e o membro RequirementsFlags dessa estrutura definido como SYSTEM_MEMORY. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Indica que a alocação de memória deve ser memória nãopagada de kernel. Isso corresponde ao membro PoolType da estrutura KSALLOCATOR_FRAMING definida como NonPagedPool e o membro RequirementsFlags dessa estrutura definido como SYSTEM_MEMORY. |
KSMEMORY_TYPE_DEVICE_UNKNOWN | Indica que o tipo de alocação de memória do dispositivo não está especificado. |
BusType
Especifica o barramento físico que acessa a memória física especificada por MemoryType. Use esse campo para determinar um tipo de memória compatível com base no barramento usado para o meio de conexão. Essa distinção é crucial quando um pin expõe diferentes tipos de memória com base no meio de conexão. BusType pode ter qualquer um dos valores listados na tabela a seguir.
Tipo | Descrição |
---|---|
GUID_BUS_TYPE_PCI | Barramento de interconexão de componentes periféricos. |
GUID_BUS_TYPE_USB | Barramento serial universal. |
GUID_BUS_TYPE_1394 | Barramento serial IEEE 1394. |
GUID_BUS_TYPE_AVC | Barramento de controle de áudio/vídeo. |
GUID_61883_CLASS | Barramento de protocolo 61883. |
MemoryFlags
Especifica que o ponto de conexão é responsável pela alocação de quadros. Deve ser definido como KSALLOCATOR_REQUIREMENTF_MUST_ALLOCATE.
BusFlags
Não usado.
Flags
Semelhante à união OptionsFlags e RequirementsFlags na estrutura KSALLOCATOR_FRAMING , com a adição dos sinalizadores que adicionam suporte para pipes.
Frames
Especifica o número total de quadros pendentes permitidos. Corresponde ao membro Frames da estrutura KSALLOCATOR_FRAMING .
FileAlignment
Requisito para alinhamento de quadro. Corresponde ao membro FileAlignment da estrutura KSALLOCATOR_FRAMING .
FramePitch
Define o membro LONG FramePitch.
MemoryTypeWeight
Um valor do tipo ULONG que especifica o peso de todo o pino desse tipo de memória.
PhysicalRange
Uma estrutura do tipo KS_FRAMING_RANGE que especifica o limite físico de tamanhos de quadro.
FramingRange
Uma estrutura do tipo KS_FRAMING_RANGE_WEIGHTED que especifica o intervalo ideal de tamanhos de quadro.
Comentários
Não defina KSALLOCATOR_FLAG_CAN_ALLOCATE para indicar a funcionalidade de endereçamento de memória. Um filtro pode ser capaz de acessar a memória específica do dispositivo em um barramento específico do dispositivo referenciando o endereço de memória neste barramento e ainda não dar suporte ao protocolo para alocar essa memória específica do dispositivo.
Cada instância KSALLOCATOR_FRAMING_EX contém um ou mais itens de enquadramento.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ks.h (inclua Ks.h) |