다음을 통해 공유


DXGKDDI_ADD_DEVICE 콜백 함수(dispmprt.h)

DxgkDdiAddDevice 함수는 디스플레이 어댑터에 대한 컨텍스트 블록을 만들고 디스플레이 어댑터를 나타내는 핸들을 반환합니다.

구문

DXGKDDI_ADD_DEVICE DxgkddiAddDevice;

NTSTATUS DxgkddiAddDevice(
  [in]  IN_CONST_PDEVICE_OBJECT PhysicalDeviceObject,
  [out] OUT_PPVOID MiniportDeviceContext
)
{...}

매개 변수

[in] PhysicalDeviceObject

디스플레이 어댑터를 식별하는 PDO(물리적 디바이스 개체)에 대한 포인터입니다.

[out] MiniportDeviceContext

PhysicalDeviceObject로 식별된 디스플레이 어댑터를 나타내는 디스플레이 미니포트 드라이버에서 만든 핸들을 수신하는 변수에 대한 포인터입니다. 디스플레이 미니포트 드라이버는 이 매개 변수에서 NULL을 반환하여 PhysicalDeviceObject로 식별된 디스플레이 어댑터를 지원하지 않음을 나타낼 수 있습니다.

반환 값

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

설명

DxgkDdiAddDevice 함수는 PhysicalDeviceObject로 식별된 디스플레이 어댑터와 연결된 프라이빗 컨텍스트 블록을 할당합니다. MiniportDeviceContext에서 반환된 핸들을 디스플레이 어댑터에 대한 핸들 또는 디스플레이 어댑터와 연결된 컨텍스트 블록에 대한 핸들로 생각할 수 있습니다. DirectX 그래픽 커널 하위 시스템(Dxgkrnl.sys)은 디스플레이 미니포트 드라이버에 대한 후속 호출에서 핸들을 제공합니다. 다음 목록에서는 디스플레이 미니포트 드라이버에서 구현한 함수에 핸들을 전달하는 Dxgkrnl.sys 다양한 구성 요소의 예를 제공합니다.

  • 디스플레이 포트 드라이버는 DxgkDdiStartDevice 함수의 MiniportDeviceContext 매개 변수에 핸들을 제공합니다.

  • VidPN 관리자는 DxgkDdiIsSupportedVidPn 함수의 hAdapter 매개 변수에 핸들을 제공합니다.

  • DirectX 그래픽 코어는 DxgkDdiQueryAdapterInfo 함수의 hAdapter 매개 변수에 핸들을 제공합니다.

핸들 이름이 MiniportDeviceContext 이고 경우에 따라 hAdapter라는 사실에 혼동하지 마세요. 또한 이 핸들을 특정 디스플레이 미니포트 드라이버 함수에 전달되는 hDevice 매개 변수와 혼동하지 마세요.

DxgkDdiAddDevice 는 직렬로 한 번에 하나의 디바이스에 대해 호출됩니다. 해당 동작은 WDM 커널 모드 드라이버에 대한 표준 DRIVER_ADD_DEVICE 콜백과 동일합니다.

일부 디스플레이 어댑터 카드에는 디스플레이 어댑터 역할을 하는 두 개 이상의 PCI 함수가 있습니다. 예를 들어 특정 이전 카드는 각 보기에 대해 별도의 PCI 함수를 사용하여 여러 보기를 구현합니다. 디스플레이 포트 드라이버는 이러한 각 PCI 함수에 대해 DxgkDdiAddDevice 를 한 번 호출합니다. 이때 디스플레이 미니포트 드라이버는 PCI 함수를 지원하거나( MiniportDeviceContext 를 0이 아닌 값으로 설정) PCI 함수를 지원하지 않음을 나타낼 수 있습니다( MiniportDeviceContext 를 NULL로 설정). 특정 PCI 함수에 대한 정보를 가져오기 위해 디스플레이 미니포트 드라이버는 PhysicalDeviceObjectIoGetDeviceProperty에 전달할 수 있습니다.

DxgkDdiRemoveDevice에서 컨텍스트 블록 및 DxgkDdiAddDevice 중에 할당하는 다른 리소스를 해제합니다.

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
대상 플랫폼 데스크톱
머리글 dispmprt.h
IRQL PASSIVE_LEVEL

추가 정보

DxgkDdiRemoveDevice

DxgkDdiStartDevice