Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
I segmenti di memoria, nel contesto del modello di driver di visualizzazione per Windows Vista e versioni successive (WDDM), descrivono lo spazio degli indirizzi dell'unità di elaborazione grafica (GPU) nella gestione della memoria video. I segmenti di memoria generalizzano e virtualizzano le risorse di memoria video. I segmenti di memoria vengono configurati in base ai tipi di memoria supportati dall'hardware( ad esempio, memoria buffer di frame o apertura della memoria di sistema).
Per inizializzare il modo in cui usa segmenti di memoria, il sottosistema kernel della grafica Microsoft DirectX (Dxgkrnl.sys) chiama la funzionedel driver miniport di visualizzazioneDxgkDdiQueryAdapterInfo. Per indirizzare il driver di miniport di visualizzazione a restituire informazioni sui segmenti di memoria dalla chiamata DxgkDdiQueryAdapterInfo, il sottosistema grafico specifica il valore DXGKQAITYPE_QUERYSEGMENT o DXGKQAITYPE_QUERYSEGMENT3 nel membro Type della struttura DXGKARG_QUERYADAPTERINFO.
Il sottosistema grafico invoca due volte la funzione DxgkDdiQueryAdapterInfo del driver miniport di visualizzazione per ottenere informazioni sui segmenti. La prima chiamata a DxgkDdiQueryAdapterInfo recupera il numero di segmenti supportati dal driver e la seconda chiama recupera informazioni dettagliate su ogni segmento. Nelle chiamate a DxgkDdiQueryAdapterInfo, il driver punta il membro pOutputData del DXGKARG_QUERYADAPTERINFO alle strutture popolate DXGK_QUERYSEGMENTOUT (per una versione del driver precedente al Windows Display Driver Model (WDDM) 1.2) o alle strutture popolate DXGK_QUERYSEGMENTOUT3 (per un driver WDDM 1.2 e versioni successive).
Nella prima chiamata, il pSegmentDescriptor membro di DXGK_QUERYSEGMENTOUT (per una versione del driver precedente a WDDM 1.2) o DXGK_QUERYSEGMENTOUT3 (per un driver WDDM 1.2 e versioni successive) è impostato su NULL. Il driver deve riempire solo il membro NbSegment di DXGK_QUERYSEGMENTOUT o DXGK_QUERYSEGMENTOUT3 con il numero di tipi di segmento supportati. Questo numero indica anche il numero di strutture DXGK_SEGMENTDESCRIPTOR non popolate (per una versione del driver precedente a WDDM 1.2) o DXGK_SEGMENTDESCRIPTOR3 (per un driver WDDM 1.2 e versioni successive) richieste dal driver dalla seconda chiamata a DxgkDdiQueryAdapterInfo.
Nella seconda chiamata, il driver deve riempire tutti i membri di DXGK_QUERYSEGMENTOUT o DXGK_QUERYSEGMENTOUT3. Nella seconda chiamata, il driver deve popolare una matrice delle dimensioni di NbSegment con le strutture DXGK_SEGMENTDESCRIPTOR o DXGK_SEGMENTDESCRIPTOR3 nel membro pSegmentDescriptor di DXGK_QUERYSEGMENTOUT o DXGK_QUERYSEGMENTOUT3, con informazioni sui segmenti supportati dal driver.
In entrambe le chiamate a DxgkDdiQueryAdapterInfo, il membro pInputData di DXGKARG_QUERYADAPTERINFO fa riferimento a una struttura DXGK_QUERYSEGMENTIN che contiene informazioni sulla posizione e sulle proprietà dell'apertura AGP. Se non è disponibile alcuna apertura AGP o se è presente ma non è installato alcun driver GART appropriato, le informazioni sull'apertura AGP sono impostate su zero. Se non è presente alcuna apertura AGP, il driver miniport di visualizzazione non deve indicare, nell'array pSegmentDescriptor di DXGK_QUERYSEGMENTOUT o DXGK_QUERYSEGMENTOUT3, che supporta un segmento di apertura tipo AGP. Se in tali circostanze è indicato un segmento di apertura di tipo AGP, l'adattatore non viene inizializzato.
Durante l'inizializzazione, poiché la memoria è abbondante, la memoria per il buffer di paging può essere allocata da un segmento specifico. La gestione della memoria video alloca la memoria per il buffer di paging dal segmento specificato nel membro PagingBufferSegmentId di DXGK_QUERYSEGMENTOUT o DXGK_QUERYSEGMENTOUT3. Il driver indica l'identificatore del segmento del buffer di paging nella seconda chiamata a DxgkDdiQueryAdapterInfo. Il driver deve inoltre specificare la dimensione in byte che deve essere allocata per il buffer di paging nel membro PagingBufferSize di DXGK_QUERYSEGMENTOUT o DXGK_QUERYSEGMENTOUT3.
Per ulteriori informazioni sui segmenti di memoria e sull'uso dei buffer di paging, vedere Gestione dei segmenti di memoria e Gestione delle risorse di memoria video tramite paging.