KSDEVICE 구조체(ks.h)

KSDEVICE 구조는 AVStream에서 관리하는 WDM 기능 디바이스를 설명합니다.

구문

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;

멤버

Descriptor

디바이스의 특성과 디바이스에서 지원하는 정적 필터를 설명하는 KSDEVICE_DESCRIPTOR 구조체에 대한 포인터입니다.

Bag

이 멤버는 디바이스와 연결된 KSOBJECT_BAG(형식 PVOID와 동일)를 지정합니다. 개체 모음을 참조하세요.

Context

디바이스에 대한 컨텍스트 정보가 포함된 메모리 위치에 대한 포인터입니다. AVStream은 AVStrMiniDeviceStart에서 디바이스 확장을 할당하는 미니드라이버에 대해 이 멤버의 디바이스 확장에 대한 포인터를 저장합니다. 컨텍스트에 할당된 메모리는 KsAddItemToObjectBag을 사용하여 개체 모음에 배치해야 합니다. 컨텍스트 는 생성 시 NULL 로 초기화됩니다.

FunctionalDeviceObject

설명 중인 디바이스에 대한 WDM 기능 디바이스 개체인 DEVICE_OBJECT 구조체에 대한 포인터입니다.

PhysicalDeviceObject

설명 중인 디바이스의 WDM 물리적 디바이스 개체인 DEVICE_OBJECT 구조체에 대한 포인터입니다.

NextDeviceObject

IoAttachDeviceToDeviceStack에 의해 결정된 드라이버 스택의 다음 디바이스인 DEVICE_OBJECT 구조체에 대한 포인터입니다.

Started

이 멤버는 이 특정 디바이스가 시작되었는지 여부를 나타냅니다. TRUE이면 디바이스가 시작되었습니다. FALSE이면 디바이스가 시작되지 않았습니다. 이 플래그는 IRP_MN_START_DEVICE 처리하는 동안 설정되며 IRP_MN_STOP_DEVICE 처리하는 동안 다시 설정됩니다. 시작되지 않은 디바이스는 필터를 만드는 모든 요청에 대한 응답으로 STATUS_DEVICE_NOT_READY 반환합니다.

SystemPowerState

시스템의 현재 전원 상태를 나타내는 SYSTEM_POWER_STATE 형식의 값입니다. SYSTEM_POWER_STATE 값은 wdm.h에 정의됩니다.

DevicePowerState

디바이스의 현재 전원 상태를 나타내는 DEVICE_POWER_STATE 형식의 값입니다. DEVICE_POWER_STATE 값은 wdm.h에 정의됩니다.

설명

클라이언트는 AVStream에서 제공하지 않는 특정 PnP 또는 전원 관리 동작을 구현해야 하는 경우 일반적으로 이 구조를 사용합니다. KSDEVICE 구조체에 대한 포인터는 KSDEVICE_DISPATCH 지정된 모든 디스패치 루틴에 대한 첫 번째 매개 변수이며 클라이언트는 컨텍스트 정보를 사용하여 이러한 루틴에 대한 자체 컨텍스트를 연결할 수 있습니다. 또한 클라이언트는 KsGetDeviceForDeviceObject를 호출하여 WDM 디바이스 개체 포인터에서 KSDEVICE 구조에 대한 포인터를 가져올 수 있습니다.

위에서 설명한 대로 컨텍스트 는 생성 시 NULL 로 초기화됩니다. 그러나 이 KSDEVICE 구조의 하위 항목에는 해당 Context 멤버가 부모 개체의 Context 멤버 값으로 설정됩니다. 이 문제는 새 개체를 만들 때 발생합니다. 자세한 내용은 AVStream 개체 계층 구조 및 개체 모음을 참조하세요. 가능한 AVStream 하위 개체(KSFILTERFACTORY, KSFILTERKSPIN)에 대한 참조 페이지도 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Microsoft Windows XP 이상 운영 체제 및 Microsoft DirectX 8.0 이상 버전에서 사용할 수 있습니다.
머리글 ks.h(Ks.h 포함)

추가 정보

KSDEVICE_DESCRIPTOR

KSDEVICE_DISPATCH

KSFILTER

KSFILTERFACTORY

KSPIN

KsAddItemToObjectBag

KsGetDeviceForDeviceObject