DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP funzione di callback (dispmprt.h)
Un driver miniport in modalità kernel (KMD) chiama DxgkrnlDxgkCbAcquirePostDisplayOwnership routine per ottenere le informazioni di visualizzazione dal dispositivo di visualizzazione auto-test corrente (POST) o dal driver WDDM in precedenza in esecuzione.
Il driver deve usare queste informazioni di visualizzazione per ottimizzare la richiesta di modifica della modalità iniziale dopo l'avvio del dispositivo di visualizzazione.
Sintassi
DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP DxgkcbAcquirePostDisplayOwnership;
NTSTATUS DxgkcbAcquirePostDisplayOwnership(
[in] HANDLE DeviceHandle,
[out] PDXGK_DISPLAY_INFORMATION DisplayInfo
)
{...}
Parametri
[in] DeviceHandle
Handle che rappresenta una scheda di visualizzazione. Il KMD ottenuto in precedenza questo handle nel membro DeviceHandle della struttura DXGKRNL_INTERFACE passata a DxgkDdiStartDevice.
[out] DisplayInfo
Puntatore a una struttura DXGK_DISPLAY_INFORMATION allocata dal KMD. Se DxgkCbAcquirePostDisplayOwnership restituisce STATUS_SUCCESS, questa struttura contiene informazioni di visualizzazione per il dispositivo di visualizzazione corrente utilizzato per le operazioni POST.
Valore restituito
DxgkCbAcquirePostDisplayOwnership restituisce STATUS_SUCCESS se ha esito positivo. In caso contrario, restituisce uno dei codici di errore definiti in Ntstatus.h.
Osservazioni
La chiamata DXGKCB_ACQUIRE_POST_DISPLAY_OWNERSHIP assicura che il driver inizializzi correttamente le impostazioni di visualizzazione in base alla configurazione di visualizzazione corrente o più recente, soprattutto dopo l'avvio del sistema, gli eventi plug-in del dispositivo o la ripresa dall'ibernazione.
Formati di colore consentiti
Il membro DisplayInfo->ColorFormat deve includere una combinazione OR bit per bit dei due formati D3DDDIFORMAT seguenti:
- D3DDDIFMT_X8R8G8B8
- D3DDDIFMT_A8R8G8B8
Se il sistema operativo restituisce il formato D3DDDIFMT_R8G8B8, il kmD deve ignorarlo.
Video presenta l'inizializzazione di destinazione
È possibile che il membro TargetId
Analogamente, è possibile che il membro DisplayInfo->AcpiId non venga inizializzato. In questo caso, l'identificatore ACPI AcpiId ha un valore pari a zero.
Nel caso di un aggiornamento da driver a driver, il driver precedente avrà fornito l'identificatore di destinazione e l'identificatore ACPI.
Linee guida per l'implementazione
A partire da WDDM 1.2, il KMD deve seguire queste linee guida quando chiama DxgkCbAcquirePostDisplayOwnership:
Il punto di ingresso per la funzione DxgkCbAcquirePostDisplayOwnership fa parte della struttura DXGKRNL_INTERFACE. Questa struttura viene restituita al driver tramite il parametro DxgkInterface quando viene chiamata la funzione di DxgkDdiStartDevice del driver.
Il KMD può facoltativamente chiamare DxgkCbAcquirePostDisplayOwnership. Tuttavia, il sistema operativo potrebbe comunque chiamare la funzioneDXgkDdiStopDeviceAndReleasePostDisplayOwnership, anche se il driver non ha chiamato in precedenza DxgkCbAcquirePostDisplayOwnershipe il driver deve gestire tale chiamata in modo appropriato. Se la funzione DxgkDdiStopDeviceAndReleasePostDisplayOwnership del driver non viene completata correttamente, il sistema operativo chiamerà la funzione DxgkDdiStopDevice del driver.
Il KMD può chiamare DxgkCbAcquirePostDisplayOwnership se il dispositivo viene avviato in risposta a un evento Plug and Play (PnP). In questo caso, il driver deve chiamare DxgkCbAcquirePostDisplayOwnership dall'interno del contesto della chiamata alla funzione DxgkDdiStartDevice.
Il KMD può chiamare DxgkCbAcquirePostDisplayOwnership se il dispositivo riprende uno stato di alimentazione PowerDeviceD0 dopo uno stato di ibernazione. In questo caso, il driver deve chiamare DxgkCbAcquirePostDisplayOwnership dall'interno del contesto della chiamata alla funzione DxgkDdiSetPowerState.
Il KMD deve chiamare la funzione DxgkCbAcquirePostDisplayOwnership se è in esecuzione almeno Windows 8. Il KMD può chiamare RtlGetVersion per determinare la versione del sistema operativo.
DxgkCbAcquirePostDisplayOwnership può restituire una struttura con il membro WidthDXGK_DISPLAY_INFORMATION impostato su zero. Questo valore indica che il dispositivo di visualizzazione corrente non è in grado di eseguire operazioni POST o il sistema operativo non dispone delle informazioni di visualizzazione correnti per il dispositivo POST corrente.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 8 (WDDM 1.2) |
server minimo supportato | Windows Server 2012 |
piattaforma di destinazione | Desktop |
intestazione |
dispmprt.h (include Dispmprt.h) |
IRQL | <= APC_LEVEL |