Condividi tramite


D3DKMT_CREATEALLOCATION struttura (d3dkmthk.h)

La struttura D3DKMT_CREATEALLOCATION descrive i parametri per la creazione di allocazioni.

Sintassi

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  void                         D3DKMT_PTR(
    const VOID          *unnamedParam1,
    pPrivateRuntimeData unnamedParam2
  );
  [in]     UINT                         PrivateRuntimeDataSize;
  union {
    [in]     D3DKMT_CREATESTANDARDALLOCATION *pStandardAllocation;
    [in]     const VOID                      *pPrivateDriverData;
  };
  [in/out] UINT                         PrivateDriverDataSize;
  [in]     UINT                         NumAllocations;
  union {
    [in]     D3DDDI_ALLOCATIONINFO  *pAllocationInfo;
    [in]     D3DDDI_ALLOCATIONINFO2 *pAllocationInfo2;
  };
  [in]     D3DKMT_CREATEALLOCATIONFLAGS Flags;
  void                         D3DKMT_PTR(
    HANDLE                        unnamedParam1,
    hPrivateRuntimeResourceHandle unnamedParam2
  );
} D3DKMT_CREATEALLOCATION;

Members

[in] hDevice

Handle al dispositivo a cui è associata la risorsa o l'allocazione.

[in/out] hResource

Tipo di dati D3DKMT_HANDLE che rappresenta un handle in modalità kernel alla risorsa associata alle allocazioni. Il valore in hResource deve essere sempre zero a meno che non venga aggiunta un'allocazione a una risorsa esistente, in cui hResource contiene l'handle di risorse.

Quando il flag di campo a bit CreateResource viene impostato nel membro Flags , il runtime OpenGL genera un handle univoco e lo passa al driver. Nell'output della funzione D3DKMTCreateAllocation, hResource specifica l'handle che il driver deve usare nelle chiamate di runtime OpenGL successive per identificare la risorsa. L'handle di risorse restituito è specifico del dispositivo ed è valido solo quando viene usato con il dispositivo creato.

[out] hGlobalShare

Un driver client in modalità utente non deve condividere le risorse usando handle globali. Il driver deve impostare NtSecuritySharing in Flag e chiamare D3DKMTShareObjects per ottenere un handle NT. L'uso di handle globali non è sicuro. Qualsiasi processo può indovinare un handle globale e aprire un oggetto condiviso. Gli handle globali sono supportati solo per motivi di compatibilità con i runtime D3D precedenti. Quando NtSecuritySharing non è impostato, l'handle globale viene restituito in hGlobalShare. Nulla impedisce a un UMD di condividere una risorsa usando un handle globale, ma i driver non devono farlo.

void D3DKMT_PTR( const VOID *unnamedParam1, pPrivateRuntimeData unnamedParam2)

[in] PrivateRuntimeDataSize

Dimensioni, in byte, dei dati privati a cui pPrivateRuntimeData punta.

[in] pStandardAllocation

Puntatore a una struttura D3DKMT_CREATESTANDARDALLOCATION che descrive l'allocazione standard da creare.

[in] pPrivateDriverData

Puntatore a un buffer che contiene dati privati facoltativi che il driver miniport visualizzato potrebbe richiedere per creare la risorsa o l'allocazione. Il contenuto del buffer proviene in genere dalla scheda ICD e deve essere in un formato che il driver miniport visualizzato può elaborare.

[in/out] PrivateDriverDataSize

Dimensioni, in byte, dei dati privati a cui pPrivateDriverData punta.

[in] NumAllocations

Numero di elementi nella matrice specificata da pAllocationInfo , che rappresenta il numero di allocazioni da creare. Si noti che la creazione di una risorsa senza allocazioni inizialmente associate è valida; pertanto, NumAllocations può essere impostato su 0.

[in] pAllocationInfo

Matrice di strutture D3DDDI_ALLOCATIONINFO che descrivono proprietà specifiche per ogni allocazione da creare.

[in] pAllocationInfo2

Questo membro è riservato e deve essere impostato su zero.

Questo membro è disponibile a partire da Windows 7.

[in] Flags

Struttura D3DKMT_CREATEALLOCATIONFLAGS che identifica gli attributi per la creazione dell'allocazione, in flag di campo a bit.

Se si imposta il flag del campo bitShared in Flag, è necessario impostare anche il flag di bit CreateResource .

void D3DKMT_PTR( HANDLE unnamedParam1, hPrivateRuntimeResourceHandle unnamedParam2)

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Intestazione d3dkmthk.h (include D3dkmthk.h)

Vedi anche

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS