estrutura KS_FRAMING_ITEM (ks.h)
A estrutura KS_FRAMING_ITEM é usada para declarar os requisitos do alocador em um pin 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 usada 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 de páginas ou nãopagados. 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 a memória do sistema. |
KSMEMORY_TYPE_USER | Indica que a alocação de memória deve ser memória do modo de usuário. |
KSMEMORY_TYPE_KERNEL_PAGED | Indica que a alocação de memória deve ser memória de página de kernel. Isso corresponde ao membro PoolType da estrutura KSALLOCATOR_FRAMING definida como PagedPool e o membro RequirementsFlags dessa estrutura definida como SYSTEM_MEMORY. |
KSMEMORY_TYPE_KERNEL_NONPAGED | Indica que a alocação de memória deve ser memória nãopagada do kernel. Isso corresponde ao membro PoolType da estrutura KSALLOCATOR_FRAMING definida como NonPagedPool e o membro RequirementsFlags dessa estrutura definida 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 componente periférico. |
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 quadros da estrutura KSALLOCATOR_FRAMING.
FileAlignment
Requisito para alinhamento de quadro. Corresponde ao membro FileAlignment da estrutura KSALLOCATOR_FRAMING.
FramePitch
Define o membro LONGFramePitch .
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.
Observações
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 fazendo referência ao 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 (incluir Ks.h) |