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                                  D3DKMT_PTR(
    VOID               *unnamedParam1,
    pPrivateDriverData unnamedParam2
  );
  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;

Members

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 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.

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.

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 una topologia di rete (VidPN) presente in video 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 grafico DirectX avvia la creazione dell'allocazione per la superficie primaria condivisa, il driver miniport di visualizzazione può determinare il numero di identificazione dal membro VidPnSourceId della struttura D3DKMDDI_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 è accessibile in modo implicito alla CPU. Un'allocazione primaria può essere bloccata durante la creazione o non bloccata al momento della 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 Value 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

Non utilizzato.

Reserved[5]

Reserved[6]

Commenti

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

  • 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 miniport di visualizzazione non può impostare i flag di campo di bit seguenti nel membro Flags di DXGK_ALLOCATIONINFO:

  • PermanentSysMem

  • Richieste nella cache

  • Protetta

  • ExistingSysMem

  • ExistingKernelSysMem

La costante D3DDDI_ID_NOTAPPLICABLE è definita in D3dukmdt.h.

Requisiti

Requisito Valore
Client minimo supportato Windows 7
Intestazione d3dukmdt.h

Vedi anche

CreateResource

D3DDDICB_ALLOCATE

D3DDDI_SURFACEINFO

D3DKMDDI_SHAREDPRIMARYSURFACEDATA

DXGKARG_CREATEALLOCATION

DXGK_ALLOCATIONINFO

DxgkDdiCreateAllocation

pfnAllocateCb