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 핸들은 없습니다.
이 멤버를 설정하는 것은 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_FLAGS 및 D3DDDI_SYNCHRONIZATIONOBJECT_FLAGS 구조에서 사용할 수 있습니다.
드라이버는 D3DKMT_CREATEALLOCATIONFLAGS 공유 플래그에 대한 다음 지침을 따라야 합니다.
- 할당이 공유되지 않으면 CreateShared 및 NtSecuritySharing을 모두 0으로 설정합니다.
- 할당이 D3DKMT_HANDLE 데이터 형식과 공유되는 경우 CreateShared = 1 및 NtSecuritySharing = 0을 설정합니다.
- 할당이 프로세스에 대한 NT 핸들과 공유되고 리소스에 대한 전역 D3DKMT_HANDLE 커널 모드 핸들이 없는 경우 CreateShared = 1 및 NtSecuritySharing = 1을 설정합니다.
요구 사항
| 지원되는 최소 클라이언트 | Windows Vista 이상 버전의 Windows 운영 체제에서 사용할 수 있습니다. |
| 헤더 | d3dkmthk.h(D3dkmthk.h 포함) |
참고 항목
피드백
다음에 대한 사용자 의견 제출 및 보기