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 *
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 が指定されている場合、読み取り元のソース バッファーを提供するページ配列のアドレス。 各エントリは 64 KB のページ番号です。
SourcePageOffset
型: UINT16
SourceType が DSTORAGE_REQUEST_SOURCE_MEMORY
であり、SourceIsPhysicalPages が指定されている場合、ソースで開始される 64 KB ページへのオフセット。
SourceSize
型: UINT32
ファイルまたはメモリ ソースから読み取るサイズ (バイト単位)。
IntermediateSize
型: UINT32
ZlibDecompress と BcpackMode の両方が指定されている場合、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 コンソール