다음을 통해 공유


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

사용자 모드 클라이언트 드라이버는 전역 핸들을 사용하여 리소스를 공유해서는 안 됩니다. 드라이버는 FlagsNtSecuritySharing 설정하고 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 구조체입니다.

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

[in] hPrivateRuntimeResourceHandle

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

요구 사항

요구
지원되는 최소 클라이언트 Windows Vista
헤더 d3dkmthk.h(D3dkmthk.h 포함)

참고 항목

D3DDDI_ALLOCATIONINFO

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATIONFLAGS