PDD_GETDRIVERINFO 콜백 함수(ddrawint.h)

DdGetDriverInfo 함수는 드라이버에서 지원하는 추가 DirectDraw 및 Direct3D 기능을 드라이버에 쿼리합니다.

구문

PDD_GETDRIVERINFO PddGetdriverinfo;

DWORD PddGetdriverinfo(
  PDD_GETDRIVERINFODATA unnamedParam1
)
{...}

매개 변수

unnamedParam1

쿼리를 수행하는 데 필요한 정보가 포함된 DD_GETDRIVERINFODATA 구조를 가리킵니다.

반환 값

DdGetDriverInfo 는 DDHAL_DRIVER_HANDLED 반환해야 합니다.

설명

드라이버는 DdGetDriverInfo 를 구현하여 DrvEnableDirectDraw를 통해 반환할 수 없는 드라이버 지원 DirectDraw 기능을 노출해야 합니다.

드라이버의 DrvGetDirectDrawInfo 함수는 DD_HALINFO 구조체의 GetDriverInfo 멤버에서 DdGetDriverInfo에 대한 포인터를 반환합니다.

GetDriverInfo 멤버가 올바르게 설정되었음을 DirectDraw에 알리려면 드라이버가 DD_HALINFO 구조에서 dwFlags 멤버의 DDHALINFO_GETDRIVERINFOSET 비트도 설정해야 합니다.

DdGetDriverInfo 는 드라이버와 해당 하드웨어가 지정된 GUID에서 요청한 콜백 또는 기능을 지원하는지 여부를 결정해야 합니다. GUID_D3DParseUnknownCommandCallback 제외한 모든 GUID의 경우 드라이버가 요청된 지원을 제공하는 경우 DD_GETDRIVERINFODATA 구조체의 다음 멤버를 설정해야 합니다.

  • dwActualSize를 드라이버에서 반환하는 콜백 또는 기능 구조의 크기(바이트)로 설정합니다.
  • lpvData가 가리키는 메모리에서 다음과 같이 요청된 기능에 해당하는 콜백 또는 기능 구조의 멤버를 초기화합니다.
    • dwSize 멤버를 구조체의 크기(바이트)로 설정합니다.
    • 콜백의 경우 드라이버에서 구현한 콜백을 가리키도록 함수 포인터를 설정하고 dwFlags 멤버의 비트를 설정하여 드라이버가 지원하는 함수를 나타냅니다.
    • 기능의 경우 드라이버/디바이스에서 지원하는 값으로 기능 구조의 적절한 멤버를 설정합니다.
  • ddRVal에서 DD_OK 반환합니다.
드라이버가 이 기능을 지원하지 않는 경우 ddRVal 을 DDERR_CURRENTLYNOTAVAIL 반환으로 설정해야 합니다.

DirectDraw는 드라이버에 DD_GETDRIVERINFODATA 구조체의 dwExpectedSize 멤버에 예상되는 데이터 양을 알릴 수 있습니다. 드라이버는 dwExpectedSize 바이트보다 많은 데이터를 입력해서는 안 됩니다.

DdGetDriverInfo를 사용하는 문제를 방지하려면 다음을 수행합니다.

  • DdGetDriverInfo가 호출되는 순서에 따라 종속성을 구현하지 마세요. 예를 들어 드라이버 초기화 단계를 DdGetDriverInfo에 연결하지 않도록 합니다.
  • DdGetDriverInfo 호출에 따라 DirectDraw 버전을 확인하지 마세요.
  • DirectDraw가 드라이버를 호출하는 횟수 또는 DirectDraw가 지정된 GUID를 쿼리하는 횟수에 대해서는 아무 것도 가정하지 마세요. DirectDraw는 동일한 GUID를 사용하여 드라이버를 반복적으로 검색할 수 있습니다. 드라이버에서 이에 대한 가정을 구현하면 향후 런타임과의 호환성이 저해됩니다.

요구 사항

요구 사항
대상 플랫폼 데스크톱
머리글 ddrawint.h(Winddi.h 포함)

추가 정보

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo