DSTORAGE_REQUEST
DirectStorage 읽기 요청을 나타냅니다.구문
멤버
Options형식: DSTORAGE_REQUEST_OPTIONS 이 요청에 대한 다양한 옵션입니다. Destination
형식: void * 이 요청의 최종 결과를 받을 버퍼의 주소입니다. DestinationPageArray
형식: PULONG_PTR DestinationIsPhysicalPages가 지정된 경우, 이 요청의 최종 결과를 받을 페이지 배열의 주소입니다. 각 항목은 64KB 페이지 번호입니다. DestinationPageOffset
형식: UINT16 DestinationIsPhysicalPages가 지정된 경우, 대상이 시작되는 64KB 페이지 내의 오프셋입니다. DestinationSize
형식: UINT32 이 요청의 최종 결과의 예상 크기(바이트)입니다. 요청에 압축 해제가 포함되어 있지 않은 경우, 이는 SourceSize와 같아야 합니다. 압축 해제가 포함된 요청의 경우, 이 값은 SourceSize보다 큽니다. File
형식: IDStorageFileX * SourceType이
DSTORAGE_REQUEST_SOURCE_FILE인 경우, 이 읽기 요청을 수행할 파일입니다.
FileOffset형식: UINT64 SourceType이
DSTORAGE_REQUEST_SOURCE_FILE인 경우, 파일에서 읽기 요청을 시작할 오프셋(바이트)입니다. ZlibDecompress 또는 BcpackMode가 지정된 경우 오프셋은 16바이트로 정렬되어야 합니다.
*Source형식: void SourceType이
DSTORAGE_REQUEST_SOURCE_MEMORY이고 SourceIsPhysicalPages가 지정되지 않은 경우, 읽어들일 소스 버퍼의 주소입니다.
SourcePageArray형식: PULONG_PTR SourceType이
DSTORAGE_REQUEST_SOURCE_MEMORY이고 SourceIsPhysicalPages가 지정된 경우, 읽어들일 소스 버퍼를 제공하는 페이지 배열의 주소입니다. 각 항목은 64KB 페이지 번호입니다.
SourcePageOffset형식: UINT16 SourceType이
DSTORAGE_REQUEST_SOURCE_MEMORY이고 SourceIsPhysicalPages가 지정된 경우, 소스가 시작되는 64KB 페이지 내의 오프셋입니다.
SourceSize형식: UINT32 파일 또는 메모리 소스에서 읽을 크기(바이트)입니다. IntermediateSize
형식: UINT32 ZlibDecompress와 BcpackMode가 모두 지정된 경우, BCPack 압축 데이터의 바이트 수입니다. CancellationTag
형식: UINT64 취소 매칭에 사용되는 임의의 UINT64 숫자입니다. *Name
형식: const CHAR 요청의 선택적 이름입니다. 디버깅에 사용됩니다. 지정된 경우, 문자열은 요청이 완료될 때까지 액세스할 수 있어야 합니다.
설명
이 구조체는 IDStorageQueueX::EnqueueRequest 메서드에서 사용됩니다.EnqueueRequest가 반환되는 즉시 구조체를 다시 사용할 수 있습니다.
단일 요청은 다음 크기 요건 중 하나를 충족해야 합니다.
- DestinationSize가 32MiB(DSTORAGE_MAX_4K_PAGE_DESTINATION_SIZE) 이하인 경우. 또는
- SourceSize(메모리 대 메모리 요청에만 해당) + DestinationSize의 결합된 메모리 사용량이 1GiB(DSTORAGE_MAX_REQUEST_SIZE) 이하이고, 32MiB보다 큰 메모리 버퍼는 64KiB 페이지 또는 2MiB 페이지를 사용해야 하는 경우.
