Condividi tramite


struttura D3DDDI_ALLOCATIONINFO2 (d3dukmdt.h)

La struttura D3DDDI_ALLOCATIONINFO2 descrive un'allocazione.

Sintassi

typedef struct _D3DDDI_ALLOCATIONINFO2 {
  D3DKMT_HANDLE                         hAllocation;
  union {
    HANDLE     hSection;
    const VOID *pSystemMem;
  } D3DKMT_ALIGN64;
  VOID                                  *pPrivateDriverData;
  UINT                                  PrivateDriverDataSize;
  D3DDDI_VIDEO_PRESENT_SOURCE_ID        VidPnSourceId;
  union {
    struct {
      UINT Primary : 1;
      UINT Stereo : 1;
      UINT OverridePriority : 1;
#if ...
      UINT Reserved : 29;
#elif
      UINT Reserved : 30;
#else
      UINT Reserved : 31;
#endif
    };
    UINT Value;
  } Flags;
  D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS GpuVirtualAddress;
  union {
    UINT                     Priority;
    D3DKMT_ALIGN64 ULONG_PTR Unused;
  };
#if ...
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[5];
#else
  D3DKMT_ALIGN64 ULONG_PTR              Reserved[6];
#endif
} D3DDDI_ALLOCATIONINFO2;

Membri

hAllocation

[out] Handle D3DKMT_HANDLE che rappresenta un handle in modalità kernel per l'allocazione. Questo handle è associato all'handle di risorse in modalità kernel (se diverso da NULL) restituito dalla funzione pfnAllocateCb del runtime Direct3D nel hKMResource membro 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.

D3DKMT_ALIGN64

Unione con hSection e pSystemMem.

D3DKMT_ALIGN64.hSection

[in] Handle per un oggetto sezione valido. Usare hSection quando è impostata D3DKMT_CREATEALLOCATIONFLAGS::ExistingSection.

D3DKMT_ALIGN64.pSystemMem

[in] Puntatore alla memoria di sistema preallocata. Usare pSystemMem quando D3DKMT_CREATEALLOCATIONFLAGS:ExistingSection non è impostato.

pPrivateDriverData

[in/out,opt] Puntatore al buffer che contiene dati privati facoltativi che potrebbero essere richiesti dal driver miniport di visualizzazione per creare l'allocazione. Il driver miniport di visualizzazione può anche restituire dati nel buffer. Quando il contenuto del buffer viene passato al driver miniport di visualizzazione, il contenuto deve essere in un formato che il driver di miniport di visualizzazione può elaborare.

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 una topologia di rete (VidPN) video presente se l'allocazione è per la superficie primaria. Il driver deve impostare VidPnSourceId solo per i tipi di allocazione primari 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 di visualizzazione può determinare il numero di identificazione dal VidPnSourceId membro della struttura D3DKMDDI_SHAREDPRIMARYSURFACEDATA a cui punta il membro pPrivateDriverData del DXGK_ALLOCATIONINFO struttura.

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 bloccata durante la creazione o non bloccata durante la creazione.

L'impostazione di questo membro equivale all'impostazione del primo bit del membro Value a 32 bit (0x00000001).

Flags.Stereo

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

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

Flags.OverridePriority

[in] Supportato a partire da Windows 10 versione 1703 (WDDM 2.2). Eseguire l'override della priorità, come stabilito dal driver grafico in modalità utente.

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.

GpuVirtualAddress

[out] Indirizzo virtuale GPU dell'allocazione creata.

Priority

[in] Priorità dell'allocazione.

Unused

Inutilizzato.

Reserved[5]

Reserved[6]

Osservazioni

Quando il driver di visualizzazione in modalità utente imposta il flag campo di bit primario nel membro flag di di D3DDDI_ALLOCATIONINFO, alcune restrizioni si applicano alla struttura DXGK_ALLOCATIONINFO nella funzione pAllocationInfo della struttura DXGKARG_CREATEALLOCATION per l'allocazione in una chiamata al driver miniport DxgkDdiCreateAllocation funzione. Queste restrizioni includono quanto segue:

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

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

  • PermanentSysMem

  • Memorizzati nella cache

  • Protetto

  • ExistingSysMem

  • ExistingKernelSysMem

La costante D3DDDI_ID_NOTAPPLICABLE è definita in D3dukmdt.h.

Fabbisogno

Requisito Valore
client minimo supportato Windows 7
intestazione d3dukmdt.h

Vedere anche

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb