Estrutura KSDEVICE (ks.h)

A estrutura KSDEVICE descreve um dispositivo funcional WDM gerenciado pelo AVStream.

Sintaxe

typedef struct _KSDEVICE {
  const KSDEVICE_DESCRIPTOR *Descriptor;
  KSOBJECT_BAG              Bag;
  PVOID                     Context;
  PDEVICE_OBJECT            FunctionalDeviceObject;
  PDEVICE_OBJECT            PhysicalDeviceObject;
  PDEVICE_OBJECT            NextDeviceObject;
  BOOLEAN                   Started;
  SYSTEM_POWER_STATE        SystemPowerState;
  DEVICE_POWER_STATE        DevicePowerState;
} KSDEVICE, *PKSDEVICE;

Membros

Descriptor

Um ponteiro para uma estrutura KSDEVICE_DESCRIPTOR que descreve as características do dispositivo e os filtros estáticos compatíveis com ele.

Bag

Esse membro especifica o KSOBJECT_BAG (equivalente ao tipo PVOID) associado ao dispositivo. Consulte Sacos de objetos.

Context

Um ponteiro para um local de memória que contém informações de contexto para o dispositivo. O AVStream armazena um ponteiro para uma extensão de dispositivo nesse membro para minidrivers que alocam uma extensão de dispositivo em AVStrMiniDeviceStart. A memória alocada para contexto deve ser colocada no recipiente de objetos usando KsAddItemToObjectBag. O contexto é inicializado como NULL no momento da criação.

FunctionalDeviceObject

Um ponteiro para uma estrutura DEVICE_OBJECT que é o objeto de dispositivo funcional WDM para o dispositivo que está sendo descrito.

PhysicalDeviceObject

Um ponteiro para uma estrutura DEVICE_OBJECT que é o objeto de dispositivo físico do WDM para o dispositivo que está sendo descrito.

NextDeviceObject

Um ponteiro para uma estrutura DEVICE_OBJECT que é o próximo dispositivo na pilha de driver, conforme determinado por IoAttachDeviceToDeviceStack.

Started

Esse membro indica se esse dispositivo específico foi iniciado ou não. Se TRUE, o dispositivo foi iniciado. Se FALSE, o dispositivo não foi iniciado. Esse sinalizador é definido durante o processamento do IRP_MN_START_DEVICE e é redefinido durante o processamento do IRP_MN_STOP_DEVICE. Um dispositivo que não é iniciado retorna STATUS_DEVICE_NOT_READY em resposta a todas as solicitações para criar um filtro.

SystemPowerState

Um valor de tipo SYSTEM_POWER_STATE que indica o estado de energia atual do sistema. SYSTEM_POWER_STATE valores são definidos em wdm.h.

DevicePowerState

Um valor de tipo DEVICE_POWER_STATE que indica o estado de energia atual do dispositivo. DEVICE_POWER_STATE valores são definidos em wdm.h.

Comentários

Os clientes normalmente usam essa estrutura se precisarem implementar um comportamento específico de PnP ou Gerenciamento de Energia que não é fornecido pelo AVStream. Um ponteiro para uma estrutura KSDEVICE é o primeiro parâmetro para todas as rotinas de expedição especificadas em KSDEVICE_DISPATCH e o cliente é livre para usar as informações de contexto para anexar seu próprio contexto para essas rotinas. Além disso, os clientes podem obter um ponteiro para a estrutura KSDEVICE de um ponteiro de objeto de dispositivo WDM chamando KsGetDeviceForDeviceObject.

Conforme mencionado acima, Context é inicializado como NULL no momento da criação. No entanto, os descendentes dessa estrutura KSDEVICE têm seus membros context correspondentes definidos como o valor do membro Context do objeto pai. Isso acontece quando o novo objeto é criado. Para obter mais informações, consulte Hierarquia de objetos AVStream e Sacos de objetos. Consulte também as páginas de referência para os possíveis objetos descendentes do AVStream: KSFILTERFACTORY, KSFILTER e KSPIN.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível no Microsoft Windows XP e em sistemas operacionais posteriores e no Microsoft DirectX 8.0 e versões posteriores.
Cabeçalho ks.h (inclua Ks.h)

Confira também

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject