Share via


Função KsDeviceRegisterAdapterObject (ks.h)

A função KsDeviceRegisterAdapterObject registra um objeto de adaptador de 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 KSDEVICE que representa o dispositivo AVStream para o qual registrar um objeto de adaptador.

[in] AdapterObject

Um ponteiro para a estrutura DMA_ADAPTERretornada por IoGetDmaAdapter que representa o controlador de 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 da 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 ser pelo menos sizeof (KSMAPPING) e pode ser tão grande quanto necessário.

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

Retornar valor

Nenhum

Comentários

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 dados. Mais informações sobre esse sinalizador podem ser encontradas na página de referência para KSPIN_DESCRIPTOR_EX. Consulte também Serviços de DMA do AVStream.

Se você definir MaxMappingByteCount como 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 de 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, divida manualmente os mapeamentos de dispersão/coleta retornados em partes alinhadas à página.

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

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ks.h (inclua Ks.h)
Biblioteca Ks.lib
IRQL PASSIVE_LEVEL

Confira também

IoGetDmaAdapter

KSFILTER_DESCRIPTOR

KSMAPPING

KSPIN_DESCRIPTOR_EX