D3DKMT_CREATEALLOCATION 구조체(d3dkmthk.h)

D3DKMT_CREATEALLOCATION 구조는 할당을 만들기 위한 매개 변수를 설명합니다.

구문

typedef struct _D3DKMT_CREATEALLOCATION {
  [in]     D3DKMT_HANDLE                hDevice;
  [in/out] D3DKMT_HANDLE                hResource;
  [out]    D3DKMT_HANDLE                hGlobalShare;
  [in]     const VOID                   *pPrivateRuntimeData;
  [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;
  [in]     HANDLE                       hPrivateRuntimeResourceHandle;
} D3DKMT_CREATEALLOCATION;

멤버

[in] hDevice

리소스 또는 할당이 연결된 디바이스에 대한 핸들입니다.

[in/out] hResource

할당과 연결된 리소스에 대한 커널 모드 핸들을 나타내는 D3DKMT_HANDLE 데이터 형식입니다. 할당이 기존 리소스에 추가되지 않는 한 hResource 의 값은 항상 0이어야 합니다. 이 경우 hResource 에는 리소스 핸들이 포함됩니다.

CreateResource 비트 필드 플래그가 Flags 멤버에 설정되면 OpenGL 런타임은 고유한 핸들을 생성하고 드라이버에 다시 전달합니다. D3DKMTCreateAllocation 함수의 출력에서 hResource는 드라이버가 후속 OpenGL 런타임 호출에서 리소스를 식별하는 데 사용해야 하는 핸들을 지정합니다. 반환되는 리소스 핸들은 디바이스별이며, 생성된 디바이스와 함께 사용할 때만 유효합니다.

[out] hGlobalShare

사용자 모드 클라이언트 드라이버는 전역 핸들을 사용하여 리소스를 공유해서는 안 됩니다. 드라이버는 플래그에서 NtSecuritySharing을 설정하고 D3DKMTShareObjects를 호출하여 NT 핸들을 가져와야 합니다. 전역 핸들을 사용하는 것은 안전하지 않습니다. 모든 프로세스는 전역 핸들을 추측하고 공유 개체를 열 수 있습니다. 전역 핸들은 이전 D3D 런타임과의 호환성 이유로만 지원됩니다. NtSecuritySharing이 설정되지 않으면 전역 핸들이 hGlobalShare에 반환됩니다. UMD가 전역 핸들을 사용하여 리소스를 공유하는 것을 방지하는 것은 없지만 드라이버는 그렇게 해서는 안 됩니다.)

[in] pPrivateRuntimeData

디버깅을 위해 리소스에 연결할 수 있는 선택적 프라이빗 데이터에 대한 포인터입니다. 이 데이터는 리소스당이며 할당당이 아닙니다.

[in] PrivateRuntimeDataSize

pPrivateRuntimeData가 가리키는 프라이빗 데이터의 크기(바이트)입니다.

[in] pStandardAllocation

만들 표준 할당을 설명하는 D3DKMT_CREATESTANDARDALLOCATION 구조체에 대한 포인터입니다.

[in] pPrivateDriverData

표시 미니포트 드라이버가 리소스 또는 할당을 만드는 데 필요할 수 있는 선택적 프라이빗 데이터가 포함된 버퍼에 대한 포인터입니다. 버퍼의 내용은 일반적으로 ICD에서 제공되며 디스플레이 미니포트 드라이버가 처리할 수 있는 형식이어야 합니다.

[in/out] PrivateDriverDataSize

pPrivateDriverData가 가리키는 개인 데이터의 크기(바이트)입니다.

[in] NumAllocations

pAllocationInfo가 지정하는 배열의 요소 수로, 만들 할당 수를 나타냅니다. 처음에 연결된 할당 없이 리소스를 만드는 것은 유효합니다. 따라서 NumAllocations는 0으로 설정할 수 있습니다.

[in] pAllocationInfo

만들 각 할당에 대한 특정 속성을 설명하는 D3DDDI_ALLOCATIONINFO 구조체의 배열입니다.

[in] pAllocationInfo2

이 멤버는 예약되어 있으며 0으로 설정해야 합니다.

이 멤버는 Windows 7부터 사용할 수 있습니다.

[in] Flags

비트 필드 플래그에서 할당을 만들기 위한 특성을 식별하는 D3DKMT_CREATEALLOCATIONFLAGS 구조체입니다.

Flags에서 CreateShared 비트 필드 플래그를 설정하는 경우 CreateResource 비트 필드 플래그도 설정해야 합니다.

[in] hPrivateRuntimeResourceHandle

이벤트 추적에 사용할 수 있는 불투명 핸들입니다. 이 핸들은 ETW(Windows용 이벤트 추적) 이벤트 로그를 분석할 때 커널 모드 할당을 사용자 모드 표면 포인터와 연결하는 데 사용할 수 있습니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
머리글 d3dkmthk.h(D3dkmthk.h 포함)

추가 정보

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS