D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION 구조체(d3dukmdt.h)
D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION 가상 주소 업데이트 작업을 설명합니다.
구문
typedef struct _D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION {
D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION_TYPE OperationType;
union {
struct {
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
D3DKMT_HANDLE hAllocation;
D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationOffsetInBytes;
D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationSizeInBytes;
} Map;
struct {
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
D3DKMT_HANDLE hAllocation;
D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationOffsetInBytes;
D3DKMT_ALIGN64 D3DGPU_SIZE_T AllocationSizeInBytes;
D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
D3DKMT_ALIGN64 UINT64 DriverProtection;
} MapProtect;
struct {
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS BaseAddress;
D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
D3DDDIGPUVIRTUALADDRESS_PROTECTION_TYPE Protection;
} Unmap;
struct {
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS SourceAddress;
D3DKMT_ALIGN64 D3DGPU_SIZE_T SizeInBytes;
D3DKMT_ALIGN64 D3DGPU_VIRTUAL_ADDRESS DestAddress;
} Copy;
};
} D3DDDI_UPDATEGPUVIRTUALADDRESS_OPERATION;
멤버
OperationType
Map
지정된 가상 주소 범위를 지정된 할당 범위에 매핑합니다. 할당은 제출 시 또는 매핑 시 상주할 필요가 없습니다. 읽기-쓰기 보호는 페이지로 설정됩니다. 페이지에 대한 DriverProtection이 0으로 설정됩니다.
Map.BaseAddress
업데이트할 GPU 가상 주소 범위의 BaseAddress 를 지정합니다. 값은 바이트 단위이며 4KB 정렬되어야 합니다.
BaseAddress에서 BaseAddress+SizeInBytes에 이르는 전체 범위는 예약됨(0) 또는 매핑된 상태여야 합니다. 그렇지 않으면 pfnUpdateGpuVirtualAddressCb 작업이 실패합니다. 모든 작업에 대한 가상 주소 범위는 동일한 pfnReserveGpuVirtualAddressCb 호출에 의해 예약된 가상 주소 범위에 속해야 합니다.
Map.SizeInBytes
업데이트되는 범위에 대한 크기(바이트)를 지정합니다. 값은 4KB여야 합니다.
Map.hAllocation
범위를 매핑해야 하는 할당을 지정합니다.
Map.AllocationOffsetInBytes
매핑할 할당의 첫 번째 페이지에 대한 오프셋(바이트)을 지정합니다. 값은 4KB여야 합니다.
Map.AllocationSizeInBytes
매핑할 할당 범위의 크기를 바이트 단위로 지정합니다. 값은 4KB로 정렬되어야 하며 Map.SizeInBytes보다 작아야 합니다. 이 값이 0이면 Map.SizeInBytes 가 사용됩니다.
이 값이 Map.SizeInBytes보다 큰 경우 Map.SizeInBytes 는 해당 값의 배수여야 합니다. 이 경우 Map.SizeInBytes/Map.AllocationSizeInBytes 가상 주소 범위는 동일한 할당 범위에 매핑됩니다.
MapProtect
지정된 가상 주소 범위를 지정된 할당 범위에 매핑합니다. 할당은 제출 시 또는 매핑 시 상주할 필요가 없습니다. 페이지 보호는 작업에 지정됩니다.
MapProtect.BaseAddress
업데이트할 GPU 가상 주소 범위의 BaseAddress 를 지정합니다. 값은 바이트 단위이며 4KB 정렬되어야 합니다.
BaseAddress에서 BaseAddress+SizeInBytes에 이르는 전체 범위는 예약된(0) 또는 매핑된 상태여야 합니다. 그렇지 않으면 pfnUpdateGpuVirtualAddressCb가 실패합니다. 모든 작업에 대한 가상 주소 범위는 동일한 pfnReserveGpuVirtualAddressCb 호출에 의해 예약된 가상 주소 범위에 속해야 합니다.
MapProtect.SizeInBytes
업데이트되는 범위에 대한 크기(바이트)를 지정합니다. 값은 4KB여야 합니다.
MapProtect.hAllocation
범위를 매핑해야 하는 할당을 지정합니다.
MapProtect.AllocationOffsetInBytes
매핑할 할당의 첫 번째 페이지에 대한 오프셋(바이트)을 지정합니다. 값은 4KB여야 합니다.
MapProtect.AllocationSizeInBytes
매핑할 할당 범위의 크기를 바이트 단위로 지정합니다. 값은 4KB로 정렬되어야 하며 맵보다 작아야 합니다. SizeInBytes. 이 값이 0이면 Map.SizeInBytes 가 사용됩니다.
이 값이 Map.SizeInBytes보다 작은 경우 Map.SizeInBytes 는 해당 값의 배수여야 합니다. 이 경우 Map.SizeInBytes/Map.AllocationSizeInBytes 가상 주소 범위는 동일한 할당 범위에 매핑됩니다.
MapProtect.Protection
페이지에 대한 API 정의 보호를 지정합니다.
MapProtect.DriverProtection
페이지에 대한 드라이버별 보호를 지정합니다.
Unmap
지정된 가상 주소 범위를 0 상태 또는 잘못된 상태로 설정합니다.
Unmap.BaseAddress
0 상태로 되돌릴 GPU 가상 주소 범위의 BaseAddress를 지정합니다. 값은 바이트 단위이며 4KB 정렬되어야 합니다.
Unmap.SizeInBytes
해제할 범위의 크기를 바이트 단위로 지정합니다. 값은 4KB여야 합니다.
Unmap.Protection
Defines는 매핑 해제 후의 페이지 테이블 항목 상태( 0 또는 NoAccess)입니다.
Copy
복사 작업은 원본 GPU 가상 주소 범위에서 대상 범위로 모든 매핑을 복사합니다. 원본 및 대상 범위는 교차할 수 있습니다. 두 범위 모두 예약된(0) 가상 주소 범위에 속해야 합니다.
BaseAddress
원본 가상 주소 범위의 시작 가상 주소를 지정합니다. 값은 바이트 단위이며 4KB 정렬되어야 합니다.
Copy.SourceAddress
Copy.SizeInBytes
복사되는 범위의 크기를 바이트 단위로 지정합니다. 값은 4KB여야 합니다.
Copy.DestAddress
대상 가상 주소 범위의 시작 가상 주소를 지정합니다. 값은 바이트 단위이며 4KB 정렬되어야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 10 |
지원되는 최소 서버 | Windows Server 2016 |
머리글 | d3dukmdt.h(D3dumddi.h, D3dkmddi.h 포함) |