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 디스플레이 드라이버 모델) 1.2부터 디스플레이 미니포트 드라이버는 DxgkCbAcquirePostDisplayOwnership 함수를 호출하여 이전에 펌웨어 및 시스템 로더에서 설정한 디스플레이 모드에 대한 정보를 가져옵니다. DxgkCbAcquirePostDisplayOwnershipSTATUS_SUCCESS 함께 반환되는 경우 드라이버는 DisplayInfo 매개 변수를 통해 반환된 디스플레이 모드 정보에 따라 디스플레이를 다시 초기화해야 하는지 여부를 결정합니다. 그렇지 않으면 드라이버는 특정 디스플레이 모드가 디바이스에서 현재 사용하도록 설정되어 있다고 가정해서는 안 되며 디스플레이를 초기화해야 합니다.

DxgkDdiStartDevice 함수를 페이징 가능으로 만들어야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista부터 사용할 수 있습니다.
대상 플랫폼 데스크톱
머리글 dispmprt.h
IRQL PASSIVE_LEVEL

추가 정보

DXGKRNL_INTERFACE

DXGK_DEVICE_INFO

DxgkCbAcquirePostDisplayOwnership

DxgkCbGetDeviceInformation

DxgkCbMapMemory

DxgkDdiAddDevice

DxgkDdiStopDevice