다음을 통해 공유


DSTORAGE_REQUEST

DirectStorage 읽기 요청을 나타냅니다.

구문

struct DSTORAGE_REQUEST {
    DSTORAGE_REQUEST_OPTIONS Options;

    union
    {
        void *Destination;

        struct
        {
            PULONG_PTR DestinationPageArray;

            UINT16 DestinationPageOffset;
        };
    };

    UINT32 DestinationSize;

    union
    {
        struct
        {
            IDStorageFileX *File;

            UINT64 FileOffset;
        };
        void *Source;

        struct
        {
            PULONG_PTR SourcePageArray;

            UINT16 SourcePageOffset;
        };
    };

    UINT32 SourceSize;

    UINT32 IntermediateSize;

    UINT64 CancellationTag;

    const CHAR *Name;
};

멤버

옵션
형식: DSTORAGE_REQUEST_OPTIONS

이 요청에 대한 다양한 옵션입니다.

Destination
형식: void *

이 요청의 최종 결과를 수신할 버퍼의 주소입니다.

DestinationPageArray
형식: PULONG_PTR

DestinationIsPhysicalPages가 지정된 경우 이 요청의 최종 결과를 받을 페이지 배열의 주소입니다. 각 항목은 64KB 페이지 번호입니다.

DestinationPageOffset
형식: UINT16

DestinationIsPhysicalPages가 지정된 경우 64KB 페이지에서 대상이 시작되는 오프셋입니다.

DestinationSize
형식: UINT32

이 요청의 최종 결과에서 예상되는 크기(바이트)입니다. 요청에 압축 해제가 포함되어 있지 않은 경우 SourceSize와(과) 같아야 합니다. 요청에 압축 해제가 포함된 경우 이 값은 SourceSize보다 큽니다.

파일
형식: IDStorageFileX *

SourceTypeDSTORAGE_REQUEST_SOURCE_FILE일 때 이 읽기 요청을 실행할 파일입나다.

FileOffset
형식: UINT64

SourceTypeDSTORAGE_REQUEST_SOURCE_FILE인 경우 읽기 요청을 시작할 파일의 오프셋(바이트)입니다. ZlibDecompress 또는 BcpackMode가 지정되면 오프셋은 16바이트로 정렬해야 합니다.

* Source
형식: void

SourceTypeDSTORAGE_REQUEST_SOURCE_MEMORY이고 SourceIsPhysicalPages가 지정되지 않은 경우 읽을 원본 버퍼의 주소입니다.

SourcePageArray
형식: PULONG_PTR

SourceTypeDSTORAGE_REQUEST_SOURCE_MEMORY이고 SourceIsPhysicalPages가 지정된 경우 읽을 원본 버퍼를 제공할 페이지 배열의 주소입니다. 각 항목은 64KB 페이지 번호입니다.

SourcePageOffset
형식: UINT16

SourceTypeDSTORAGE_REQUEST_SOURCE_MEMORY이고 SourceIsPhysicalPages가 지정된 경우 64KB 페이지에서 원본이 시작하는 오프셋입니다.

SourceSize
형식: UINT32

파일 또는 메모리 원본에서 읽을 크기(바이트)입니다.

IntermediateSize
형식: UINT32

ZlibDecompressBcpackMode가 모두 지정된 경우 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 페이지를 사용해야 합니다.

자세한 내용은 DirectStorage 개요의 “EnqueueRequest” 섹션을 참조하세요.

요구 사항

헤더: dstorage_xs.h

지원되는 플랫폼: Xbox Series 콘솔

참고 항목

DStorage