다음을 통해 공유


DXGKDDI_START_DEVICE 콜백 함수(dispmprt.h)

DxgkDdiStartDevice 함수는 I/O 요청을 수신하도록 디스플레이 어댑터를 준비합니다.

통사론

DXGKDDI_START_DEVICE DxgkddiStartDevice;

NTSTATUS DxgkddiStartDevice(
  [in]  IN_CONST_PVOID MiniportDeviceContext,
  [in]  IN_PDXGK_START_INFO DxgkStartInfo,
  [in]  IN_PDXGKRNL_INTERFACE DxgkInterface,
  [out] OUT_PULONG NumberOfVideoPresentSources,
  [out] OUT_PULONG NumberOfChildren
)
{...}

매개 변수

[in] MiniportDeviceContext

디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들입니다. 디스플레이 미니포트 드라이버의 DxgkDdiAddDevice 함수는 이전에 DirectX 그래픽 커널 하위 시스템에 이 핸들을 제공했습니다.

[in] DxgkStartInfo

디스플레이 미니포트 드라이버가 초기화에 필요한 정보를 포함하는 DXGK_START_INFO 구조체에 대한 포인터입니다.

[in] DxgkInterface

디스플레이 미니포트 드라이버가 호출할 수 있는 DirectX 그래픽 커널 하위 시스템에 의해 구현되는 함수에 대한 포인터를 포함하는 DXGKRNL_INTERFACE 구조체에 대한 포인터입니다.

[out] NumberOfVideoPresentSources

디스플레이 어댑터에서 지원하는 비디오 현재 원본 수를 수신하는 ULONG 변수에 대한 포인터입니다. 비디오 프레젠테이션 원본에 대한 자세한 내용은 여러 모니터 및 비디오 프레젠테이션 네트워크 참조하세요.

[out] NumberOfChildren

MiniportDeviceContext표시되는 디스플레이 어댑터의 자식인 총 디바이스 수를 수신하는 ULONG 변수에 대한 포인터입니다. 이 수에는 현재 있는 자식 디바이스뿐만 아니라 잠재적인 자식 디바이스도 포함되어야 합니다. 예를 들어 이식 가능한 컴퓨터를 도킹하면 추가 비디오 출력을 사용할 수 있는 경우 휴대용 컴퓨터가 현재 도킹되었는지 여부에 관계없이 해당 비디오 출력의 개수를 계산해야 합니다. 자식 디바이스에 대한 자세한 내용은 디스플레이 어댑터 자식 디바이스를 참조하세요.

반환 값

DxgkDdiStartDevice 성공하면 STATUS_SUCCESS 반환합니다. 그렇지 않으면 Ntstatus.h정의된 오류 코드 중 하나를 반환합니다.

발언

DxgkDdiStartDevice 함수는 다음 작업을 수행해야 합니다.

  • DxgkInterface 매개 변수에 전달된 DXGKRNL_INTERFACE 구조체에서 제공하는 함수 포인터를 저장합니다. 또한 DXGKRNL_INTERFACE 구조의 DeviceHandle 멤버를 저장합니다. DirectX 그래픽 커널 하위 시스템을 다시 호출하려면 해당 핸들이 필요합니다.
  • DXGK_DEVICE_INFO 구조를 할당하고 DxgkCbGetDeviceInformation 호출하여 레지스트리 경로, PDO 및 MiniportDeviceContext나타내는 표시 어댑터의 변환된 리소스 목록을 포함하는 해당 구조의 멤버를 채웁니다. MiniportDeviceContext가 나타내는 컨텍스트 블록에 DXGK_DEVICE_INFO 구조체의 선택한 멤버(디스플레이 미니포트 드라이버에 나중에 필요한 멤버)를 저장합니다.
  • DxgkCbMapMemory 함수를 호출하여 메모리 리소스를 시스템 공간에 매핑합니다.
  • I/O 요청을 수신하도록 하드웨어를 준비하는 데 필요한 상태로 MiniportDeviceContext 나타내는 컨텍스트 블록을 초기화합니다.
  • NumberOfVideoPresentSources MiniportDeviceContext표시되는 디스플레이 어댑터에서 지원하는 비디오 현재 원본 수로 설정합니다.
  • NumberOfChildren MiniportDeviceContext나타내는 디스플레이 어댑터의 자식이거나 될 수 있는 디바이스 수로 설정합니다.
  • MiniportDeviceContext표시되는 디스플레이 어댑터에 인터럽트를 사용하도록 설정합니다.
WDDM(Windows Display Driver Model) 1.2부터 디스플레이 미니포트 드라이버는 DxgkCbAcquirePostDisplayOwnership 함수를 호출하여 펌웨어 및 시스템 로더에서 이전에 설정한 디스플레이 모드에 대한 정보를 가져옵니다. DxgkCbAcquirePostDisplayOwnershipSTATUS_SUCCESS반환하는 경우 드라이버는 DisplayInfo 매개 변수를 통해 반환된 디스플레이 모드 정보를 기반으로 디스플레이를 다시 초기화해야 하는지 여부를 결정합니다. 그렇지 않으면 드라이버는 특정 디스플레이 모드가 디바이스에서 현재 사용하도록 설정되어 있다고 가정해서는 안 되며 디스플레이를 초기화해야 합니다.

DxgkDdiStartDevice 함수는 페이징 가능해야 합니다.

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 바탕 화면
헤더 dispmprt.h
IRQL PASSIVE_LEVEL

참고 항목

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice