DXGKCB_DISCONNECTDOORBELL funzione di callback (d3dkmddi.h)
Importante
Alcune informazioni riguardano un prodotto in versione preliminare che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non fornisce alcuna garanzia, espressa o implicita, in relazione alle informazioni fornite qui.
KMD chiama DxgkCbDisconnectDoorbell per notificare Dxgkrnl che kmD deve disconnettere un campanello connesso in precedenza da una coda hardware.
Sintassi
DXGKCB_DISCONNECTDOORBELL DxgkcbDisconnectdoorbell;
NTSTATUS DxgkcbDisconnectdoorbell(
INOUT_PDXGKARGCB_DISCONNECTDOORBELL pArgs
)
{...}
Parametri
pArgs
[in] Puntatore a una struttura DXGKARGCB_DISCONNECTDOORBELL che descrive il campanello da disconnettere.
Valore restituito
DxgkCbDisconnectDoorbell restituisce STATUS_INVALID_PARAMETER se Dxgkrnl non riesce a trovare il hDoorbell associato per hHwQueueo se DisconnectReason non è uno dei valori D3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX. In tutti gli altri casi questa funzione ha esito positivo, anche quando il campanello è già disconnesso.
Osservazioni
KMD chiama questa funzione per notificare Dxgkrnl quando deve disconnettere un campanello. KmD deve considerare che l'indirizzo del campanello fisico sia disconnesso solo dopo il ritorno da questo callback.
Dxgkrnl rimuove il mapping degli indirizzi virtuali e contrassegna il campanello come disconnesso. In particolare, Dxgkrnl esegue i passaggi seguenti per disconnettere il campanello:
- Ruota la modalità utente DoorbellCpuVirtualAddress a una pagina fittizia in modo che UMD non possa più scrivere nella posizione del campanello fisico.
- Scrive il DisconnectReason in doorbellStatusCpuVirtualAddress in modo che UMD sappia che il campanello è disconnesso e il motivo.
Per altre informazioni, vedere invio di lavoro in modalità utente.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 11, versione 24H2 (WDDM 3.2) |
intestazione | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |