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:
Ordnen Sie eine DXGK_AGP_INTERFACE-Struktur zu.
Legen Sie das Size-Element auf sizeof(DXGK_AGP_INTERFACE) fest.
Legen Sie das Versionselement fest. Versionskonstanten werden in Dispmprt.h definiert (z. B. DXGK_AGP_INTERFACE_VERSION_1).
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.
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:
Ordnen Sie eine DXGK_DEBUG_REPORT_INTERFACE-Struktur zu.
Legen Sie das Size-Element auf sizeof(DXGK_DEBUG_REPORT_INTERFACE) fest.
Legen Sie das Versionselement fest. Versionskonstanten werden in Dispmprt.h definiert (z. B. DXGK_DEBUG_REPORT_INTERFACE_VERSION_1).
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.
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:
Ordnen Sie eine DXGK_TIMED_OPERATION_INTERFACE-Struktur zu.
Legen Sie das Size-Element auf sizeof(DXGK_TIMED_OPERATION_INTERFACE) fest.
Legen Sie das Versionselement fest. Versionskonstanten werden in Dispmprt.h definiert (z. B. DXGK_TIMED_OPERATION_INTERFACE_VERSION_1).
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.
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 |