DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 Struktur (d3dkmthk.h)
Die DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2-Struktur wird verwendet, um den Energiezustand einer neuen Eingabe zu registrieren.
Syntax
typedef struct _DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 {
ULONG Version;
PVOID PrivateHandle;
PDXGK_POWER_NOTIFICATION PowerNotificationCb;
PDXGK_REMOVAL_NOTIFICATION RemovalNotificationCb;
PDXGK_FSTATE_NOTIFICATION FStateNotificationCb;
PDXGK_INITIAL_COMPONENT_STATE InitialComponentStateCb;
} DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2, *PDXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2;
Member
Version
Die aktuelle Version, die verwendet wird. Dieser Wert muss auf eine der folgenden DXGK_GRAPHICSPOWER_VERSIONs festgelegt werden:
#define DXGK_GRAPHICSPOWER_VERSION_1_0 0x1000
#define DXGK_GRAPHICSPOWER_VERSION_1_1 0x1001
#define DXGK_GRAPHICSPOWER_VERSION_1_2 0x1002
#define DXGK_GRAPHICSPOWER_VERSION DXGK_GRAPHICSPOWER_VERSION_1_2
Standardmäßig stellt DXGK_GRAPHICSPOWER_VERSION die neueste Version dar. Das Grafiksubsystem unterstützt die aktuelle Version und alle vorherigen Versionen. Wenn es sich bei diesem Wert um eine Version handelt, die nicht erkannt wird, schlägt STATUS_NOINTERFACE fehl. Dies sollte nur der Fall sein, wenn der Nicht-Grafiktreiber für ein neueres Betriebssystem als das, was derzeit ausgeführt wird, erstellt wurde, und in diesem Fall erwarten wir, dass der Nicht-Grafiktreiber es mit einer niedrigeren Versionsnummer wiederholen wird.
DXGK_GRAPHICSPOWER_VERSION_1_1 unterstützt F-Zustandsänderungsbenachrichtigungen. DXGK_GRAPHICSPOWER_VERSION_1_2 unterstützt die anfängliche Enumeration der Daten und des Zustands freigegebener Energiekomponenten.
PrivateHandle
Ein undurchsichtiges Handle, das in allen Rückrufen bereitgestellt wird. Dieses Handle muss global eindeutig sein, daher sollte ein Zeiger auf die PDO oder FDO des aufrufenden Treibers verwendet werden. Dieses Handle wird als Schlüssel für Grafiken verwendet, um diese spezifische Registrierung nachzuverfolgen, und wird den Rückrufen von Nicht-Grafiktreibern zugeordnet, um deren zukünftige Entfernung zu behandeln.
PowerNotificationCb
Ein Rückruf, der Benachrichtigungen darüber liefert, dass das Grafikgerät einen Übergang zum Energiezustand des Geräts durchläuft, und stellt eine neue DEVICE_POWER_STATE bereit. Dieser Rückruf muss implementiert werden. Siehe PDXGK_POWER_NOTIFICATION.
RemovalNotificationCb
Ein Rückruf, der benachrichtigt, dass das Grafikgerät entfernt wird. Alle weiteren Rückrufe in Grafiken für dieses DeviceHandle geben einen fehlerhaften NTSTATUS-Code zurück und werden blockiert, bis Sie vom RemovalNotificationCb-Rückruf zurückkehren. Dieser Rückruf muss implementiert werden. Siehe PDXGK_REMOVAL_NOTIFICATION
FStateNotificationCb
Gibt eine Statusbenachrichtigung aus. Dieser Rückruf ist optional und wird von Nicht-Grafiktreibern verwendet. Siehe PDXGK_FSTATE_NOTIFICATION.
InitialComponentStateCb
Initialisiert den Komponentenstatus. Siehe PDXGK_INITIAL_COMPONENT_STATE.
Hinweise
Grafiktreiber geben an, welche Energiekomponenten vorhanden sind, indem sie auf die Abfragen reagieren, die in _DXGK_QUERYADAPTERINFOTYPE DXGKQAITYPE_NUMPOWERCOMPONENTS und DXGKQAITYPE_POWERCOMPONENTINFO.
Wenn ein Grafiktreiber mindestens eine DXGK_POWER_COMPONENT_SHARED Komponente registriert, wird eine GRAPHICSPOWER-Schnittstelle für diesen Adapter erstellt. Die Schnittstelle wird nicht für Adapter registriert, die keine dieser Komponenten verfügbar machen.
Grafiktreiber können eine "blockierende" Komponente registrieren, indem sie das DXGK_POWER_RUNTIME_COMPONENT-FlagActiveInD3 auf 0 oder eine Nichtblockierungskomponente festlegen, indem sie dieses Flag auf 1 festlegen.
Eine blockierende Energiekomponente verhindert, dass das Grafikgerät bei Verwendung heruntergefahren wird, während eine nicht blockierende Energiekomponente nicht verwendet wird. Beide ermöglichen es dem Grafiktreiber, seine Energieebenen ordnungsgemäß zu verwalten, wenn er vom Nicht-Grafiktreiber verwendet wird.
Ein Grafiktreiber kann sowohl eine blockierende als auch eine nicht blockierende Energiekomponente für eine einzelne physische/logische Komponente verfügbar machen, wenn er die Möglichkeit bieten möchte, dass der Nicht-Grafiktreiber selektiv blockierende oder nicht blockierende Verwendung auswählen kann.
Wenn die GRAPHICSPOWER-Treiberschnittstelle verfügbar und aktiviert ist, kann ein Nicht-Grafiktreiber einen E/A-Aufruf an den Grafiktreiber senden, um sich beim Grafiktreiber zu registrieren, der Rückrufe bereitstellt und abruft, die zum Verwalten der freigegebenen Energiekomponenten verwendet werden. Der E/A-Aufruf verwendet den IOCTL_INTERNAL_GRAPHICSPOWER_REGISTER-Steuerungscode, wobei Eingabedaten DXGK_GRAPHICSPOWER_REGISTER_INPUT_V_1_2 und Ausgabedaten _DXGK_GRAPHICSPOWER_REGISTER_OUTPUT.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1803 (WDDM 2.4) |
Kopfzeile | d3dkmthk.h |