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)

Confira também

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED