DXGKDDI_CREATEMEMORYBASIS funzione di callback (d3dkmddi.h)
La funzione DxgkDdiCreateMemoryBasis kmD crea un handle per una raccolta di intervalli di memoria che rappresentano l'allocazione eseguita durante il rilevamento dei bit dirty.
Sintassi
DXGKDDI_CREATEMEMORYBASIS DxgkddiCreatememorybasis;
HANDLE DxgkddiCreatememorybasis(
IN_CONST_HANDLE hAdapter,
IN_CONST_PDXGKARG_CREATEMEMORYBASIS pArgs
)
{...}
Parametri
hAdapter
[in] Handle per un blocco di contesto associato a una scheda di visualizzazione. KmD in precedenza forniva questo handle per Dxgkrnl nella MiniportDeviceContext parametro di output della funzione DxgiDdiAddDevice.
pArgs
[in] Puntatore a una struttura DXGKARG_CREATEMEMORYBASIS che contiene informazioni per la creazione della base.
Valore restituito
DxgkDdiCreateMemoryBasis restituisce un handle al riferimento del KMD per tenere traccia della raccolta di intervalli. Il KMD deve essere in grado di trasformare queste informazioni nelle informazioni della base nei comandi successivi, ad esempio DxgkDdiDestroyMemoryBasis.
Osservazioni
Il rilevamento delle operazioni di modifica in VRAM riguarda le allocazioni che potrebbero non essere supportate in modo contiguo. Gli indirizzi fisici rappresentati nel rilevamento dei bit dirty sono quindi costituiti da una raccolta di intervalli che rappresentano l'allocazione utilizzata. DxgkDdiCreateMemoryBasis restituisce un handle al riferimento del KmD per tenere traccia di questi intervalli.
Il KmD può basarsi sulle seguenti invarianti:
Per ogni intervallo in intervalli , sia SegmentOffset che (SegmentOffset + SizeInBytes - 1) rappresentano indirizzi validi nel segmento a cui fa riferimento SegmentId.
Tutti gli intervalli sono disgiunti; ovvero l'intersezione tra due intervalli è sempre Null.
È anche comune che SegmentOffset e SizeInBytes rispetti determinati allineamenti di pagina quando la base di memoria creata viene usata in determinate DDI di rilevamento dirty. Questi valori sono descritti nella pagina di riferimento di DDI e sono sempre un multiplo di DXGK_DIRTY_BIT_TRACKING_SEGMENT_CAPS::P ageSize.
Dxgkrnl in caso contrario non garantisce l'ordinamento degli indirizzi nella raccolta di Ranges o garanzie correlate.
Per altre informazioni, vedere Rilevamento bit dirty.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows 11, versione 24H2 (WDDM 3.2) |
intestazione | d3dkmddi.h |
IRQL | PASSIVE_LEVEL |