DXGKCB_DISCONNECTDOORBELL funzione di callback (d3dkmddi.h)
Importante
Alcune informazioni si riferiscono a un prodotto di versione preliminare che può essere modificato in modo sostanziale prima che venga rilasciato commercialmente. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
KMD chiama DxgkCbDisconnectDoorbell per notificare a 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 l'hDoorbell associato per hHwQueue o se DisconnectReason non è uno dei valori D3DDDI_DOORBELLSTATUS_DISCONNECTED_XXX. In tutti gli altri casi questa funzione riesce, anche quando il campanello è già disconnesso.
Commenti
KMD chiama questa funzione per notificare a Dxgkrnl quando deve disconnettere un campanello. Il servizio di gestione delle chiavi deve considerare l'indirizzo della porta fisica da disconnettere solo dopo la restituzione da questo callback.
Dxgkrnl esegue il mapping degli indirizzi virtuali e contrassegna il campanello come disconnesso. In particolare, Dxgkrnl esegue i passaggi seguenti per disconnettere il campanello:
- Ruota il doorbell in modalità utenteCpuVirtualAddress in una pagina fittizia in modo che UMD non possa più scrivere nella posizione del campanello fisico.
- Scrive la DisconnessioneReasoninDoorbellStatusCpuVirtualAddress in modo che UMD sappia che il campanello è disconnesso e il motivo per cui.
Per altre informazioni, vedere Invio in modalità utente.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows 11 versione 24H2 (WDDM 3.2) |
Intestazione | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |