D3DKMT_CREATEALLOCATIONFLAGS 구조체(d3dkmthk.h)

D3DKMT_CREATEALLOCATIONFLAGS 구조체는 D3DKMTCreateAllocation 함수에 대한 호출에서 할당을 만드는 방법을 식별합니다.

구문

typedef struct _D3DKMT_CREATEALLOCATIONFLAGS {
  UINT CreateResource : 1;
  UINT CreateShared : 1;
  UINT NonSecure : 1;
  UINT CreateProtected : 1;
  UINT RestrictSharedAccess : 1;
  UINT ExistingSysMem : 1;
  UINT NtSecuritySharing : 1;
  UINT ReadOnly : 1;
  UINT CreateWriteCombined : 1;
  UINT CreateCached : 1;
  UINT SwapChainBackBuffer : 1;
  UINT CrossAdapter : 1;
  UINT OpenCrossAdapter : 1;
  UINT PartialSharedCreation : 1;
  UINT Zeroed : 1;
  UINT WriteWatch : 1;
  UINT StandardAllocation : 1;
  UINT ExistingSection : 1;
  UINT AllowNotZeroed : 1;
  UINT PhysicallyContiguous : 1;
  UINT NoKmdAccess : 1;
  UINT SharedDisplayable : 1;
#if ...
  UINT Reserved : 10;
#elif
  UINT Reserved : 11;
#elif
  UINT Reserved : 13;
#elif
  UINT Reserved : 14;
#elif
  UINT Reserved : 16;
#elif
  UINT Reserved : 21;
#else
  UINT Reserved : 26;
#endif
} D3DKMT_CREATEALLOCATIONFLAGS;

구성원

CreateResource

디바이스별 리소스를 만들지 여부를 지정하는 UINT 값입니다.

CreateShared를 설정하는 경우 CreateResource도 설정해야 합니다.

이 멤버를 설정하는 것은 32비트 값(0x00000001)의 첫 번째 비트를 설정하는 것과 같습니다.

CreateShared

모든 디바이스에서 공유되는 리소스를 만들지 여부를 지정하는 UINT 값입니다.

CreateShared를 설정하는 경우 CreateResource도 설정해야 합니다.

CreateShared 사용에 대한 자세한 내용은 설명 섹션을 참조하세요.

이 멤버를 설정하는 것은 32비트 값(0x00000002)의 두 번째 비트를 설정하는 것과 같습니다.

NonSecure

모든 프로세스에서 열 수 있는 할당을 만들지 여부를 지정하는 UINT 값입니다. 비보안이 설정된 경우 보안 및 비보안 프로세스가 할당을 열 수 있습니다.

이 멤버를 설정하는 것은 32비트 값(0x00000004)의 세 번째 비트를 설정하는 것과 같습니다.

CreateProtected

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값(0x00000008)의 네 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원합니다.

RestrictSharedAccess

일부 제한 사항이 있지만 모든 디바이스에서 공유되는 리소스를 만들지 여부를 지정하는 UINT 값입니다.

이 멤버를 설정하는 것은 32비트 값(0x00000010)의 다섯 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원합니다.

ExistingSysMem

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값(0x00000020)의 여섯 번째 비트를 설정하는 것과 같습니다.

Windows 7부터 지원합니다.

NtSecuritySharing

할당이 NT 핸들과 공유되는지 여부를 지정하는 UINT 값입니다. 즉, 리소스에 대한 전역 D3DKMT_HANDLE 커널 모드 핸들이 없습니다.

NtSecuritySharing이 1(TRUE)로 설정된 경우 할당은 D3DKMTShareObjects 함수를 사용하여 공유되지만 리소스에 대한 전역 D3DKMT_HANDLE 핸들은 없습니다.

참고 NtSecuritySharing 이 1로 설정된 경우 CreateShared를 1로 설정해야 합니다.
NtSecuritySharing 사용에 대한 자세한 내용은 설명 섹션을 참조하세요.

이 멤버를 설정하는 것은 32비트 값(0x00000040)의 일곱 번째 비트를 설정하는 것과 같습니다.

Windows 8 시작 지원.

ReadOnly

할당만 읽을 수 있는지 여부를 지정하는 UINT 값입니다.

이 멤버를 설정하는 것은 32비트 값(0x00000080)의 여덟 번째 비트를 설정하는 것과 같습니다.

Windows 8 시작 지원.

CreateWriteCombined

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값(0x00000100)의 일곱 번째 비트를 설정하는 것과 같습니다.

Windows 8 시작 지원.

CreateCached

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값(0x00000200)의 여덟 번째 비트를 설정하는 것과 같습니다.

Windows 8 시작 지원.

SwapChainBackBuffer

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값(0x00000100)의 일곱 번째 비트를 설정하는 것과 같습니다.

Windows 8 시작 지원.

CrossAdapter

크로스 어댑터입니다.

OpenCrossAdapter

열린 크로스 어댑터입니다. 사용자 모드에서 할당을 만들 때 사용할 수 없습니다.

PartialSharedCreation

Zeroed

WriteWatch

StandardAllocation

ExistingSection

AllowNotZeroed

PhysicallyContiguous

NoKmdAccess

SharedDisplayable

Reserved

Windows 8 시작 지원.

이 멤버는 예약되어 있으며 0으로 설정해야 합니다. 이 멤버를 설정하는 것은 32비트 값의 나머지 26비트(0xFFFFFFC0)를 0으로 설정하는 것과 같습니다.

설명

D3DKMTShareObjects 함수를 사용하여 공유할 개체는 먼저 NtSecuritySharing 플래그 값 집합을 사용하여 만들어야 합니다. 이 플래그 값은 D3DKMT_CREATEALLOCATIONFLAGS, D3DKMT_CREATEKEYEDMUTEX2_FLAGSD3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 구조에서 사용할 수 있습니다.

드라이버는 D3DKMT_CREATEALLOCATIONFLAGS 공유 플래그에 대한 다음 지침을 따라야 합니다.

  • 할당이 공유되지 않으면 CreateSharedNtSecuritySharing을 모두 0으로 설정합니다.
  • 할당이 D3DKMT_HANDLE 데이터 형식과 공유되는 경우 CreateShared = 1 및 NtSecuritySharing = 0을 설정합니다.
  • 할당이 프로세스에 대한 NT 핸들과 공유되고 리소스에 대한 전역 D3DKMT_HANDLE 커널 모드 핸들이 없는 경우 CreateShared = 1 및 NtSecuritySharing = 1을 설정합니다.

요구 사항

   
지원되는 최소 클라이언트 Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다.
헤더 d3dkmthk.h(D3dkmthk.h 포함)

참고 항목

D3DKMTCreateAllocation

D3DKMT_CREATEALLOCATION