DXGKCB_QUERY_SERVICES Rückruffunktion (dispmprt.h)

Die DxgkCbQueryServices-Funktion gibt eine Vom Anzeigeporttreiber implementierte Schnittstelle zurück.

Syntax

DXGKCB_QUERY_SERVICES DxgkcbQueryServices;

NTSTATUS DxgkcbQueryServices(
  [in]      HANDLE DeviceHandle,
  [in]      DXGK_SERVICES ServicesType,
  [in, out] PINTERFACE Interface
)
{...}

Parameter

[in] DeviceHandle

Ein Handle, das einen Anzeigeadapter darstellt. Der Anzeigeminiporttreiber hat dieses Handle zuvor im DeviceHandle-Member der DXGKRNL_INTERFACE-Struktur abgerufen, das an DxgkDdiStartDevice übergeben wurde.

[in] ServicesType

Eine Konstante aus der DXGK_SERVICES-Enumeration , die angibt, welche Schnittstelle angefordert wird.

[in, out] Interface

Ein Zeiger auf eine INTERFACE-Struktur , die die angeforderte Schnittstelle empfängt.

Rückgabewert

DxgkCbQueryServices gibt STATUS_SUCCESS zurück, wenn dies erfolgreich ist. Andernfalls wird einer der in "Ntstatus.h" definierten Fehlercodes zurückgegeben.

Hinweise

Eine Schnittstelle ist in diesem Kontext eine Reihe von Funktionen, die vom Anzeigeporttreiber implementiert werden. Der Anzeigeporttreiber stellt die Funktionen einer Schnittstelle anderen Treibern zur Verfügung, indem er Funktionszeiger als Reaktion auf DxgkCbQueryServices bereitstellt.

Abrufen der AGP-Schnittstelle

Gehen Sie wie folgt vor, um eine AGP-Schnittstelle (Accelerated Graphics Port) zu erhalten:

  1. Ordnen Sie eine DXGK_AGP_INTERFACE-Struktur zu.

  2. Legen Sie das Size-Element auf sizeof(DXGK_AGP_INTERFACE) fest.

  3. Legen Sie das Versionselement fest. Versionskonstanten werden in Dispmprt.h definiert (z. B. DXGK_AGP_INTERFACE_VERSION_1).

  4. Rufen Sie DxgkCbQueryServices auf; Legen Sie ServicesType auf DxgkServicesAgp fest, und legen Sie Interface auf die Adresse (als PINTERFACE umgewandelt) Ihrer DXGK_AGP_INTERFACE-Struktur fest.

  5. Bei der Rückgabe von DxgkCbQueryServices enthält Ihre DXGK_AGP_INTERFACE-Struktur Zeiger auf die AGP-Schnittstellenfunktionen. Beispiel : AgpAllocatePool.

Abrufen der Debugberichtsschnittstelle

Gehen Sie wie folgt vor, um eine Debugberichtsschnittstelle zu erhalten:

  1. Ordnen Sie eine DXGK_DEBUG_REPORT_INTERFACE-Struktur zu.

  2. Legen Sie das Size-Element auf sizeof(DXGK_DEBUG_REPORT_INTERFACE) fest.

  3. Legen Sie das Versionselement fest. Versionskonstanten werden in Dispmprt.h definiert (z. B. DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).

  4. Rufen Sie DxgkCbQueryServices auf; Legen Sie ServicesType auf DxgkServicesDebugReport fest, und legen Sie Interface auf die Adresse (in PINTERFACE umgewandelt) Ihrer DXGK_DEBUG_REPORT_INTERFACE-Struktur fest.

  5. Wenn Sie von DxgkCbQueryServices zurückkehren, enthält Ihre DXGK_DEBUG_REPORT_INTERFACE-Struktur Zeiger auf die Funktionen der Debugberichtsschnittstelle. Beispiel : DbgReportCreate.

Abrufen der Schnittstelle für Zeitvorgänge

Gehen Sie wie folgt vor, um eine Timed Operation-Schnittstelle zu erhalten:

  1. Ordnen Sie eine DXGK_TIMED_OPERATION_INTERFACE-Struktur zu.

  2. Legen Sie das Size-Element auf sizeof(DXGK_TIMED_OPERATION_INTERFACE) fest.

  3. Legen Sie das Versionselement fest. Versionskonstanten werden in Dispmprt.h definiert (z. B. DXGK_TIMED_OPERATION_INTERFACE_VERSION_1).

  4. Rufen Sie DxgkCbQueryServices auf; Legen Sie ServicesType auf DxgkServicesTimedOperation fest, und legen Sie Interface auf die Adresse (in PINTERFACE umgewandelt) Ihrer DXGK_TIMED_OPERATION_INTERFACE-Struktur fest.

  5. Bei der Rückgabe von DxgkCbQueryServices enthält Ihre DXGK_TIMED_OPERATION_INTERFACE-Struktur Zeiger auf die Schnittstellenfunktionen für timed Operation. Beispiel : TimedOperationStart.

Abrufen der SPB- und Systemfirmwaretabellenschnittstellen

Die Schnittstellen Simple Peripheral Bus (SPB) und Systemfirmwaretabelle können in ähnlicher Weise abgerufen werden, indem Sie die oben genannten Schritte mithilfe der entsprechenden ServicesType-Struktur und -Struktur ausführen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Zielplattform Desktop
Kopfzeile dispmprt.h (include Dispmprt.h)
IRQL PASSIVE_LEVEL

Weitere Informationen

DXGK_AGP_INTERFACE

DxgkDdiStartDevice

DXGK_DEBUG_REPORT_INTERFACE

DXGK_FIRMWARE_TABLE_INTERFACE

DXGK_SERVICES

DXGK_SPB_INTERFACE

DXGK_TIMED_OPERATION_INTERFACE

DXGKRNL_INTERFACE

SCHNITTSTELLE