Compartilhar via


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)

Consulte também

KSALLOCATOR_FRAMING

KSALLOCATOR_FRAMING_EX

KS_COMPRESSION

KS_FRAMING_RANGE

KS_FRAMING_RANGE_WEIGHTED