次の方法で共有


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 が指定されている場合、この要求の最終結果を受け取るページ配列のアドレス。 各エントリは 64 KB のページ番号です。

DestinationPageOffset
型: UINT16

DestinationIsPhysicalPages が指定されている場合、宛先で開始される 64 KB ページへのオフセット。

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 が指定されている場合、読み取り元のソース バッファーを提供するページ配列のアドレス。 各エントリは 64 KB のページ番号です。

SourcePageOffset
型: UINT16

SourceTypeDSTORAGE_REQUEST_SOURCE_MEMORY であり、SourceIsPhysicalPages が指定されている場合、ソースで開始される 64 KB ページへのオフセット。

SourceSize
型: UINT32

ファイルまたはメモリ ソースから読み取るサイズ (バイト単位)。

IntermediateSize
型: UINT32

ZlibDecompressBcpackMode の両方が指定されている場合、BCPACK 圧縮データのバイト数。

CancellationTag
型: UINT64

取り消し照合に使用される任意の UINT64 番号。

* Name
型: const CHAR

要求の省略可能な名前。 デバッグに使用されます。 指定した場合は、要求が完了するまでその文字列にアクセスできる必要があります。

解説

この構造体は IDStorageQueueX::EnqueueRequest メソッドによって使用されます。 この構造体は、EnqueueRequest が返されるとすぐに再利用できます。

1 つのリクエストは、次のサイズ要件のいずれかを満たす必要があります。

  • 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