D3DDDI_ALLOCATIONINFO struttura (d3dukmdt.h)

La struttura D3DDDI_ALLOCATIONINFO descrive un'allocazione per WDDM v1. I client grafici in modalità utente devono usare D3DDDI_ALLOCATIONINFO2.

Sintassi

typedef struct _D3DDDI_ALLOCATIONINFO {
  D3DKMT_HANDLE                  hAllocation;
  void                           D3DKMT_PTR(
    const VOID *unnamedParam1,
    pSystemMem unnamedParam2
  );
  void                           D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  UINT                           PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
#if ...
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
} D3DDDI_ALLOCATIONINFO;

Members

hAllocation

[out] D3DKMT_HANDLE che rappresenta un handle in modalità kernel per l'allocazione. Questo handle è associato all'handle di risorse in modalità kernel (se non NULL) restituito dalla funzione pfnAllocateCb del runtime Direct3D nel membro hKMResource della struttura D3DDDICB_ALLOCATE . Il driver di visualizzazione in modalità utente può usare questo handle di allocazione in modalità kernel per fare riferimento all'allocazione nel buffer dei comandi.

void D3DKMT_PTR( const VOID *unnamedParam1, pSystemMem unnamedParam2)

void D3DKMT_PTR( VOID *unnamedParam1, pPrivateDriverData unnamedParam2)

PrivateDriverDataSize

[in] Dimensioni in byte dei dati privati.

VidPnSourceId

[in] Numero di identificazione VidPN in base zero dell'origine video presente in un percorso di topologia di rete (VidPN) presente in una rete video se l'allocazione è per la superficie primaria. Il driver deve impostare VidPnSourceId solo per i tipi di allocazione primaria e non per qualsiasi altro tipo di allocazione. Se il driver imposta VidPnSourceId per qualsiasi altro tipo di allocazione in una chiamata alla funzione pfnAllocateCb, pfnAllocateCb restituisce D3DDDI_ID_NOTAPPLICABLE.

Quando il sottosistema kernel della grafica DirectX avvia la creazione dell'allocazione per la superficie primaria condivisa, il driver miniport visualizzato può determinare il numero di identificazione dal membro VidPnSourceIddella strutturaD3DKMDDI_SHAREDPRIMARYSURFACEDATA a cui punta il membro pPrivateDriverData della struttura DXGK_ALLOCATIONINFO.

Flags

[in] Unione che contiene una struttura o un valore a 32 bit che identifica il tipo di allocazione.

Flags.Primary

[in] UINT che specifica se l'allocazione fa parte del desktop. Tale allocazione è implicitamente accessibile alla CPU. Un'allocazione primaria può essere aggiunta in fase di creazione o non aggiunta alla creazione.

L'impostazione di questo membro equivale a impostare il primo bit del membro Valore a 32 bit (0x00000001).

Flags.Stereo

[in] Supportato a partire da Windows 8. UINT che specifica se l'allocazione è un'allocazione primaria stereo. Il membro Stereo può essere impostato solo quando il membro primario è impostato.

L'impostazione di questo membro equivale a impostare il secondo bit del membro Valore a 32 bit (0x00000002).

Flags.Reserved

[in] Questo membro è riservato e deve essere impostato su zero.

Flags.Value

[in] Valore a 32 bit che identifica il tipo di allocazione.

Commenti

Quando il driver di visualizzazione in modalità utente imposta il flag di campo a bit primario nel membro Flags di D3DDDI_ALLOCATIONINFO, alcune restrizioni si applicano alla strutturaDXGK_ALLOCATIONINFO nel membro pAllocationInfo della struttura DXGKARG_CREATEALLOCATION per l'allocazione in una chiamata alla funzione DxgkDdiCreateAllocation del driver di visualizzazione. Le restrizioni possibili sono le seguenti:

  • L'allocazione viene allocata in base alle preferenze; in caso contrario, l'allocazione predefinita viene impostata sul set di segmento di scrittura supportato e tutti i segmenti specificati nel set di segmento di scrittura devono essere accessibili dalla CPU.

  • Il driver miniport visualizzato non può impostare i flag di campo bit seguenti nel membro Flags di DXGK_ALLOCATIONINFO:

  • PermanenteSysMem

  • Richieste nella cache

  • Protetta

  • EsistenteSysMem

  • ExistingKernelSysMem

La costante D3DDDI_ID_NOTAPPLICABLE è definita in D3dukmdt.h.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3dukmdt.h (include D3dumddi.h, D3dkmddi.h)

Vedi anche

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_ALLOCATIONINFO2

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb