PDD_GETDRIVERINFO Rückruffunktion (ddrawint.h)

Die DdGetDriverInfo-Funktion fragt den Treiber nach zusätzlichen DirectDraw- und Direct3D-Funktionen ab, die der Treiber unterstützt.

Syntax

PDD_GETDRIVERINFO PddGetdriverinfo;

DWORD PddGetdriverinfo(
  PDD_GETDRIVERINFODATA unnamedParam1
)
{...}

Parameter

unnamedParam1

Verweist auf eine DD_GETDRIVERINFODATA Struktur, die die zum Ausführen der Abfrage erforderlichen Informationen enthält.

Rückgabewert

DdGetDriverInfo muss DDHAL_DRIVER_HANDLED zurückgeben.

Hinweise

Treiber müssen DdGetDriverInfo implementieren, um treibergestützte DirectDraw-Funktionen verfügbar zu machen, die nicht über DrvEnableDirectDraw zurückgegeben werden können.

Die DrvGetDirectDrawInfo-Funktion des Treibers gibt einen Zeiger auf DdGetDriverInfo im GetDriverInfo-Member der DD_HALINFO-Struktur zurück.

Um DirectDraw darüber zu informieren, dass das GetDriverInfo-Element ordnungsgemäß festgelegt wurde, muss der Treiber auch das DDHALINFO_GETDRIVERINFOSET Bit des dwFlags-Elements in der DD_HALINFO-Struktur festlegen.

DdGetDriverInfo sollte bestimmen, ob der Treiber und seine Hardware die von der angegebenen GUID angeforderten Rückrufe oder Funktionen unterstützen. Wenn der Treiber die angeforderte Unterstützung für alle GUIDs außer GUID_D3DParseUnknownCommandCallback bereitstellt, sollte er die folgenden Member der DD_GETDRIVERINFODATA-Struktur festlegen:

  • Legen Sie dwActualSize auf die Größe der Rückruf- oder Funktionsstruktur in Byte fest, die vom Treiber zurückgegeben wird.
  • Initialisieren Sie im Arbeitsspeicher, auf den lpvData verweist, die Member der Rückruf- oder Funktionsstruktur, die dem angeforderten Feature entspricht, wie folgt:
    • Legen Sie den dwSize-Member auf die Größe in Byte der -Struktur fest.
    • Legen Sie für Rückrufe die Funktionszeiger so fest, dass sie auf die vom Treiber implementierten Rückrufe verweisen, und legen Sie die Bits im dwFlags-Member fest, um anzugeben, welche Funktionen der Treiber unterstützt.
    • Legen Sie für Funktionen die entsprechenden Member der Funktionsstruktur mit Werten fest, die vom Treiber/Gerät unterstützt werden.
  • Gibt DD_OK in ddRVal zurück.
Wenn der Treiber das Feature nicht unterstützt, sollte er ddRVal auf DDERR_CURRENTLYNOTAVAIL und zurückgeben festlegen.

DirectDraw informiert den Treiber über die erwartete Datenmenge im dwExpectedSize-Element der DD_GETDRIVERINFODATA-Struktur . Der Treiber darf nicht mehr Daten als dwExpectedSize-Bytes ausfüllen.

So vermeiden Sie Probleme bei der Verwendung von DdGetDriverInfo:

  • Implementieren Sie keine Abhängigkeiten basierend auf der Reihenfolge, in der DdGetDriverInfo aufgerufen wird. Vermeiden Sie beispielsweise das Einbinden von Treiberinitialisierungsschritten in DdGetDriverInfo.
  • Versuchen Sie nicht, die DirectDraw-Version basierend auf den Aufrufen von DdGetDriverInfo zu ermitteln.
  • Gehen Sie nicht davon aus, wie oft DirectDraw den Treiber aufruft oder wie oft DirectDraw eine bestimmte GUID abfragt. Es ist möglich, dass DirectDraw den Treiber wiederholt mit derselben GUID testet. Die Implementierung von Annahmen dazu im Treiber beeinträchtigt die Kompatibilität mit zukünftigen Laufzeiten.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile ddrawint.h (einschließlich Winddi.h)

Weitere Informationen

DD_GETDRIVERINFODATA

DrvEnableDirectDraw

DrvGetDirectDrawInfo