Freigeben über


DD_GETDRIVERINFO2DATA Struktur (d3dhal.h)

Nur DirectX 8.0 und höhere Versionen.

DD_GETDRIVERINFO2DATA wird im lpvData- Member der DD_GETDRIVERINFODATA Struktur übergeben, wenn GUID_GetDriverInfo2 im guidInfo Mitglied von DD_GETDRIVERINFODATA in einem DdGetDriverInfo- Aufruf angegeben wird.

Syntax

typedef struct _DD_GETDRIVERINFO2DATA {
  DWORD dwReserved;
  DWORD dwMagic;
  DWORD dwType;
  DWORD dwExpectedSize;
} DD_GETDRIVERINFO2DATA;

Angehörige

dwReserved

Gibt ein reserviertes Feld an. Treiber sollte nicht lesen oder schreiben.

dwMagic

Gibt die magische Zahl an. Hat den Wert D3DGDI2_MAGIC, wenn dies ein GetDriverInfo2 Anruf ist. Andernfalls ist diese Struktur tatsächlich ein DD_STEREOMODE Aufruf.

dwType

Gibt den angeforderten Informationstyp an, der einen der folgenden D3DGDI2_TYPE_Xxx- Werte enthalten kann. Dieser Treiber sollte nur dieses Element lesen (nicht schreiben).

Wert Bedeutung
D3DGDI2_TYPE_DEFER_AGP_FREES nur NT-basierte Betriebssysteme.
Wird verwendet, um den Treiber darüber zu informieren, dass er die Zerstörung von AGP-Speicher für Oberflächen ordnungsgemäß verarbeiten sollte. Die Laufzeit stellt einen Zeiger auf eine DD_FREE_DEFERRED_AGP_DATA Struktur im lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur bereit.
Der Treiber empfängt diese Benachrichtigung manchmal, bevor eine Änderung des Anzeigemodus auftritt. Die Laufzeit sendet diese Benachrichtigung nur, wenn sie zum Ändern des Anzeigemodus verwendet werden soll. Treiber sollten den Prozessbezeichner (PROCESS Identifier, PID) des Prozesses überprüfen, der die Oberfläche gegen den Prozess zerstört, der die Oberfläche erstellt hat. Wenn die PIDs unterschiedlich sind, sollte der Treiber wahrscheinlich nicht die Benutzermoduszuordnungen des AGP-Speichers zerstören, da eine Anwendung möglicherweise noch den Speicher verwendet.
D3DGDI2_TYPE_DEFERRED_AGP_AWARE nur NT-basierte Betriebssysteme.
Wird verwendet, um den Treiber darüber zu informieren, dass die Laufzeit D3DGDI2_TYPE_FREE_DEFERRED_AGP und D3DGDI2_TYPE_DEFER_AGP_FREES Benachrichtigungen zur entsprechenden Zeit sendet (z. B. nach dem letzten ausstehenden AGP-Speicher Sperre freigegeben wird). Die Laufzeit stellt einen Zeiger auf eine DD_DEFERRED_AGP_AWARE_DATA Struktur im lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur bereit.
D3DGDI2_TYPE_DXVERSION Wird verwendet, um den Treiber über die aktuelle DX-Laufzeitversion zu benachrichtigen, die von der Anwendung verwendet wird. Die Laufzeit stellt einen Zeiger auf eine DD_DXVERSION Struktur im lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur bereit.
D3DGDI2_TYPE_FREE_DEFERRED_AGP nur NT-basierte Betriebssysteme.
Wird verwendet, um den Treiber zu benachrichtigen, dass es jetzt sicher ist, alle Benutzermoduszuordnungen des AGP-Speichers zu zerstören. Der Treiber behält diese Benutzermoduszuordnungen bei, wenn Oberflächen zerstört wurden und eine D3DGDI2_TYPE_DEFER_AGP_FREES Benachrichtigung empfangen wurde. Die Laufzeit stellt einen Zeiger auf eine DD_FREE_DEFERRED_AGP_DATA Struktur im lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur bereit.
Der Treiber empfängt diese Benachrichtigung, wenn alle Anzeigegeräte innerhalb des Prozesses die Verwendung von Oberflächen, Texturen, Vertexpuffern und Indexpuffern beenden, die zum Zeitpunkt der Änderung des Anzeigemodus gesperrt wurden.
D3DGDI2_TYPE_GETADAPTERGROUP nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber nach der Identität der Gruppe von Adaptern abzufragen, die Teil seiner Mehrkopf-Grafikkarte sind. Diese Gruppe teilt Videohardware wie Videospeicher und 3D-Zugriffstaste. Der Treiber sollte die Datenstruktur festlegen, auf die das lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur verweist, auf DD_GETADAPTERGROUPDATA.
D3DGDI2_TYPE_GETD3DCAPS8 Dieser Typ gibt an, dass die Laufzeitanforderungen zum Empfangen einer D3DCAPS8 Struktur die DirectX 8.0-Stilfunktionen des Geräts bieten. Der Treiber sollte eine initialisierte D3DCAPS8 Struktur in das lpvData-Feld der DD_GETDRIVERINFODATA Struktur kopieren.
D3DGDI2_TYPE_GETD3DCAPS9 Nur für DirectX 9.0 und höhere Versionen erforderlich.
Dieser Typ gibt an, dass die Laufzeitanforderungen zum Empfangen einer D3DCAPS9 Struktur die DirectX 9.0-Stilfunktionen des Geräts bieten. Der Treiber sollte eine initialisierte D3DCAPS9 Struktur in das lpvData-Feld der DD_GETDRIVERINFODATA-Struktur kopieren.
D3DGDI2_TYPE_GETD3DQUERY nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber nach Informationen zu einem bestimmten Abfragetyp abzufragen, den er unterstützt. Der Treiber sollte die Datenstruktur festlegen, auf die das Feld "lpvData" der DD_GETDRIVERINFODATA Datenstruktur verweist, auf DD_GETD3DQUERYDATA.
D3DGDI2_TYPE_GETD3DQUERYCOUNT nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber nach der Anzahl der unterstützten Abfragetypen abzufragen. Der Treiber sollte die Datenstruktur festlegen, auf die das lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur verweist, auf DD_GETD3DQUERYCOUNTDATA.
D3DGDI2_TYPE_GETDDIVERSION nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber für die Version der DDI abzufragen, die der Treiber unterstützt; Diese DDI-Version hängt wiederum von der Version von DirectX ab, die diese Anforderung vorgibt. Der Treiber sollte das dwDDIVersion-Element der DD_GETDDIVERSIONDATA-Struktur festlegen, auf das das lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur verweist, auf die entsprechende DDI-Version.
D3DGDI2_TYPE_GETEXTENDEDMODE nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber nach Informationen zu einem bestimmten erweiterten Anzeigemodus abzufragen, der unterstützt wird. Der Treiber sollte die Datenstruktur festlegen, auf die das lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur verweist, auf DD_GETEXTENDEDMODEDATA.
D3DGDI2_TYPE_GETEXTENDEDMODECOUNT nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber nach der Anzahl der unterstützten erweiterten Anzeigemodi abzufragen. Der Treiber sollte die Datenstruktur festlegen, auf die das lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur verweist, auf DD_GETEXTENDEDMODECOUNTDATA.
D3DGDI2_TYPE_GETFORMAT Wird verwendet, um ein bestimmtes Oberflächenformat vom Treiber abzufragen. Die Datenstruktur, auf die das lpvDatafield der DD_GETDRIVERINFODATA Datenstruktur verweist, ist DD_GETFORMATDATA.
D3DGDI2_TYPE_GETFORMATCOUNT Wird verwendet, um die Anzahl der vom Treiber unterstützten DirectX 8.0- und neueren Formatvorlagenoberflächenformate anzufordern. Die Datenstruktur, auf die das Feld "lpvData" des DD_GETDRIVERINFODATA verweist, ist DD_GETFORMATCOUNTDATA.
D3DGDI2_TYPE_GETMULTISAMPLEQUALITYLEVELS nur DirectX 9.0 und höhere Versionen.
Wird verwendet, um den Treiber für die Anzahl der Qualitätsebenen mit mehreren Beispielen für ein bestimmtes Renderzielformat abzufragen, das unterstützt wird. Unabhängig davon, ob das Anzeigegerät maskierbare oder untermaskebare Multisampling unterstützt, muss der Treiber für das Gerät die Anzahl der Qualitätsstufen für den D3DMULTISAMPLE_NONMASKABLE Mehrfachbeispieltyp bereitstellen. Der Treiber sollte die Datenstruktur festlegen, auf die das lpvData-Feld der DD_GETDRIVERINFODATA Datenstruktur verweist, auf DD_MULTISAMPLEQUALITYLEVELSDATA.

dwExpectedSize

Gibt die erwartete Größe der angeforderten Informationen in Bytes an. Dieser Treiber sollte nur dieses Element lesen (nicht schreiben).

Bemerkungen

Das dwExpectedSize Mitglied der DD_GETDRIVERINFODATA-Struktur wird nicht verwendet, wenn eine GetDriverInfo2- Anforderung gestellt wird. Der Wert ist in diesem Fall nicht definiert und sollte ignoriert werden. Stattdessen wird die tatsächliche erwartete Größe der Daten im dwExpectedSize Member von DD_GETDRIVERINFO2DATA gefunden.

Das folgende Codefragment veranschaulicht, wie GetDriverInfo2-behandelt wird:

D3DCAPS8 myD3DCaps8 = { ... };

DWORD CALLBACK
DdGetDriverInfo(LPDDHAL_GETDRIVERINFODATA lpData)
{
  if (MATCH_GUID((lpData->guidInfo), GUID_GetDriverInfo2))
  {
    ASSERT(NULL != lpData);
    ASSERT(NULL != lpData->lpvData);

    // Is this a call to GetDriverInfo2 or DDStereoMode?
 if (((DD_GETDRIVERINFO2DATA*)(lpData->lpvData))->dwMagic
      == D3DGDI2_MAGIC)
 {
      // Yes, it's a call to GetDriverInfo2, fetch the
 // DD_GETDRIVERINFO2DATA data structure.
      DD_GETDRIVERINFO2DATA* pgdi2 = lpData->lpvData;
 ASSERT(NULL != pgdi2);
      // What type of request is this?
      switch (pgdi2->dwType)
      {
        case D3DGDI2_TYPE_GETD3DCAPS8:
        {
          // The runtime is requesting the DX8 D3D caps
          // so copy them over now. It should be noted
          // that the dwExpectedSize field of
          // DD_GETDRIVERINFODATA is not used for
          // GetDriverInfo2 calls and should be ignored.
          size_t copySize = min(
            sizeof(myD3DCaps8), pgdi2->dwExpectedSize);
          memcpy(lpData->lpvData, &myD3DCaps8, copySize);
          lpData->dwActualSize = copySize;
          lpData->ddRVal       = DD_OK;
          return DDHAL_DRIVER_HANDLED;
        }
        default:
          // For any other GetDriverInfo2 types not handled
          // or understood by the driver set a ddRVal of
          // DDERR_CURRENTLYNOTAVAIL and return
          // DDHAL_DRIVER_HANDLED.
          return DDHAL_DRIVER_HANDLED;
      }
    }
    else
    {
      // It must be a call to request for stereo mode support.
 // Fetch the stereo mode data
      DD_STEREOMODE* pStereoMode = lpData->lpvData;
 ASSERT(NULL != pStereoMode);

      // Process the stereo mode request...
      lpData->dwActualSize = sizeof(DD_STEREOMODE);
      lpData->ddRVal       = DD_OK;
      return DDHAL_DRIVER_HANDLED;
    }
  }

  // Handle any other device GUIDs...

} // DdGetDriverInfo

Weitere Informationen zu D3DCAPS8 und D3DCAPS9 finden Sie in der DirectX SDK-Dokumentation.

Anforderungen

Anforderung Wert
Header- d3dhal.h (einschließlich D3dhal.h)

Siehe auch

DD_DEFERRED_AGP_AWARE_DATA

DD_DXVERSION

DD_FREE_DEFERRED_AGP_DATA

DD_GETADAPTERGROUPDATA

DD_GETD3DQUERYCOUNTDATA

DD_GETD3DQUERYDATA

DD_GETDDIVERSIONDATA

DD_GETDRIVERINFODATA

DD_GETEXTENDEDMODECOUNTDATA

DD_GETEXTENDEDMODEDATA

DD_GETFORMATCOUNTDATA

DD_GETFORMATDATA

DD_MULTISAMPLEQUALITYLEVELSDATA

DD_STEREOMODE

DdGetDriverInfo-