Partilhar via


Função KsDeviceRegisterAdapterObject (ks.h)

A função KsDeviceRegisterAdapterObject registra um objeto de adaptador DMA com AVStream para executar o DMA de dispersão/coleta no dispositivo especificado. Todos os drivers compilados para Win64 devem usar IKsDeviceFunctions::RegisterAdapterObjectEx.

Sintaxe

void KsDeviceRegisterAdapterObject(
  [in] PKSDEVICE       Device,
  [in] PADAPTER_OBJECT AdapterObject,
  [in] ULONG           MaxMappingsByteCount,
  [in] ULONG           MappingTableStride
);

Parâmetros

[in] Device

Um ponteiro para a estrutura de KSDEVICE que representa o dispositivo AVStream para o qual registrar um objeto do adaptador.

[in] AdapterObject

Um ponteiro para a estrutura de DMA_ADAPTER retornada por IoGetDmaAdapter que representa o controlador DMA..

[in] MaxMappingsByteCount

Esse parâmetro especifica o número máximo de bytes que o dispositivo pode manipular para um único mapeamento. Permite que o AVStream divida automaticamente grandes partes de memória física contígua em vários elementos de dispersão/coleta para dispositivos que impõem um limite de tamanho em mapeamentos individuais em transferências de DMA. Não há garantia de que as quebras ocorram nos limites da página.

[in] MappingTableStride

Esse parâmetro especifica quantos bytes cada entrada na tabela de mapeamento requer. Isso deve ter pelo menos tamanhos de (KSMAPPING) e pode ser tão grande quanto necessário.

Espaço adicional pode ser usado pelo minidriver como informações de contexto.

Valor de retorno

Nenhum

Observações

Um minidriver que chama KsDeviceRegisterAdapterObject é responsável por adquirir anteriormente o objeto do adaptador por meio de IoGetDmaAdapter.

Observe também que, se o minidriver especificar o sinalizador KSPIN_FLAG_GENERATE_MAPPINGS para qualquer pino em qualquer filtro no dispositivo, o minidriver deverá chamar KsDeviceRegisterAdapterObject antes de processar os dados. Mais informações sobre esse sinalizador podem ser encontradas na página de referência do KSPIN_DESCRIPTOR_EX. Consulte também dos Serviços de DMA do AVStream.

Se você definir MaxMappingByteCount para uma página física de comprimento, não há garantia de que os mapeamentos residam em uma única página física. Além disso, conforme observado na descrição do membro acima, a configuração MaxMappingsByteCount não garante que as quebras ocorrerão nos limites da página. Se você precisar de quebras nos limites da página, considere não especificar um limite de tamanhos de mapeamento; em vez disso, quebre os mapeamentos de dispersão/coleta retornados em partes alinhadas à página manualmente.

Consulte também DMA de suporte em drivers AVStream de 64 bits.

Requisitos

Requisito Valor
da Plataforma de Destino Universal
cabeçalho ks.h (incluir Ks.h)
biblioteca Ks.lib
IRQL PASSIVE_LEVEL

Consulte também

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX