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 함수에 대한 정보를 가져오기 위해 디스플레이 미니포트 드라이버는 PhysicalDeviceObject 를 IoGetDeviceProperty에 전달할 수 있습니다.
DxgkDdiRemoveDevice에서 컨텍스트 블록 및 DxgkDdiAddDevice 중에 할당하는 다른 리소스를 해제합니다.
DxgkDdiAddDevice 함수를 페이징 가능으로 만들어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows Vista |
대상 플랫폼 | 데스크톱 |
머리글 | dispmprt.h |
IRQL | PASSIVE_LEVEL |