Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Um minidriver AVStream que não manipula a inicialização do dispositivo de forma autónoma chama KsInitializeDriver da rotina DriverEntry do minidriver. KsInitializeDriver inicializa o objeto driver de um driver AVStream, além de gestão de IRP, acrescentar mensagens de dispositivo PnP e descarga.
Ao chamar KsInitializeDriver, o minidriver passa um ponteiro para o objeto do driver para inicializar um ponteiro para o caminho do registro e, opcionalmente, um objeto descritor de dispositivo. Observe que passar o objeto KSDEVICE_DESCRIPTOR não é necessário. Se o minidriver passar um descritor de dispositivo, o AVStream criará um dispositivo com as características especificadas no momento de adicionar o dispositivo.
O objeto descritor de dispositivo contém um ponteiro para uma estrutura KSDEVICE_DISPATCH , bem como uma matriz de descritores de filtro. Forneça uma KSFILTER_DESCRIPTOR para cada tipo de filtro suportado pelo minidriver. Quando o minidriver chama KsInitializeDriver, o AVStream cria um objeto de fábrica de filtro para cada tipo de filtro exposto pelo minidriver. Os filtros individuais são então instanciados pela fábrica de filtros após o recebimento de um IRP de criação para o item de criação associado. Cada descritor de filtro contém um ponteiro para uma matriz de objetos KSPIN_DESCRIPTOR_EX . O AVStream cria uma fábrica de pinos no filtro relevante para cada tipo de pino que o minidriver expõe através desse filtro.
Quando é estabelecida uma ligação a um determinado tipo de pino num filtro, a fábrica de pinos AVStream cria um objeto de pino. Observe que cada filtro deve expor pelo menos um pino. O minidriver usa o membro InstancesNecessary do KSPIN_DESCRIPTOR_EX para identificar o número de instâncias desse tipo de pino que são necessárias para que o filtro funcione corretamente. Da mesma forma, o minidriver pode impor um máximo no número de pinos que a fábrica de pinos pode instanciar ao usar o membro InstancesPossible dessa estrutura.
O AVStream suporta dois tipos de processamento: processamento centrado em filtros e processamento centrado em pinos. Ao dispor os descritores, decida que tipo de processamento cada tipo de filtro executará.
Instalando um Minidriver AVStream
Um minidriver AVStream deve ter um arquivo INF que o sistema usa para instalar o driver. Um arquivo INF AVStream é baseado no formato INF comum, que é descrito em Criando um arquivo INF. Pode também consultar os ficheiros INF fornecidos com os drivers de exemplo AVStream no Kit de Drivers do Windows (WDK). Tenha em mente as seguintes diretrizes específicas do AVStream.
Se você estiver escrevendo um minidriver para um dispositivo pai, a seção AddReg do seu arquivo INF deve conter:
[ParentName.AddReg]
HKR,"ENUM\[DeviceName]",pnpid,,"[string]"
Caso estejas a escrever um minidriver para um dispositivo secundário, a secção AddReg deve conter:
[Manufacturer]
...=ChildName
[ChildName]
...=ChildName.Device,AVStream\[string]
Observe que "AVStream" seria "Stream" para um controlador de classe de transmissão.
Para todos os minidrivers AVStream, a cadeia de caracteres de referência específica do filtro no arquivo INF deve corresponder ao membro ReferenceGuid da estrutura KSFILTER_DESCRIPTOR .
Para obter mais informações sobre descritores, consulte Descritores AVStream.