> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# XMEM_BASIC_INFORMATION

> XMEM_BASIC_INFORMATION

# XMEM\_BASIC\_INFORMATION

包含處理序之虛擬位址空間中某個分頁範圍的相關資訊。

<a id="syntaxSection" />

## 語法

```cpp theme={null}
typedef struct XMEM_BASIC_INFORMATION {  
    PVOID BaseAddress;  
    PVOID AllocationBase;  
    DWORD AllocationProtect;  
    SIZE_T RegionSize;  
    DWORD State;  
    DWORD Protect;  
    DWORD Type;  
    ULONGLONG XMemFlags;  
    DWORD TagCode;  
    CHAR TagFourCC[4];  
} XMEM_BASIC_INFORMATION  
```

<a id="membersSection" />

### 成員

*BaseAddress*<br />類型：PVOID

分頁區域基底位址的指標。

*AllocationBase*<br />類型：PVOID

[XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc) 函式所配置之分頁範圍基底位址的指標。*BaseAddress* 成員所指向的分頁包含在此配置範圍內。

*AllocationProtect*<br />類型：DWORD

最初配置區域時的記憶體保護選項。此成員可以是其中一個[記憶體保護常數](https://learn.microsoft.com/windows/desktop/Memory/memory-protection-constants)，如果呼叫端沒有存取權，則為 0。

*RegionSize*<br />類型：SIZE\_T

從基底位址開始、所有分頁都具有相同屬性之區域的大小 (以位元組為單位)。

*State*<br />類型：DWORD

區域中分頁的狀態。此成員可以是 MEM\_COMMIT、MEM\_FREE 或 MEM\_RESERVE 其中之一，以及分頁大小。

| 狀態 | 值 | 意義 |
| :- | :- | :- |
| `MEM_COMMIT` | 0x1000 | 表示已在記憶體或磁碟上的分頁檔中配置實體儲存體的已認可分頁。 |
| `MEM_FREE` | 0x10000 | 表示呼叫處理序無法存取且可供配置的可用分頁。對於可用分頁，*AllocationBase*、*AllocationProtect*、*Protect* 和 *Type* 成員中的資訊未定義。 |
| `MEM_RESERVE` | 0x2000 | 表示已保留處理序虛擬位址空間的範圍，但未配置任何實體儲存體的保留分頁。對於保留分頁，*Protect* 成員中的資訊未定義。 |
| `MEM_WRITE_WATCH` | 0x200000 | 表示該範圍參與寫入監看。 |
| `MEM_64K_PAGES` | 0x20400000 | 表示該範圍使用 64KB 分頁大小。 |
| `MEM_2MB_PAGES` | 0x20000000 | 表示該範圍使用 2MB 分頁大小。 |

*Protect*<br />類型：DWORD

區域中分頁的存取保護。此成員是 *AllocationProtect* 成員所列的其中一個值。

*Type*<br />類型：DWORD

區域中分頁的類型。已定義下列類型。

| 類型 | 值 | 意義 |
| :- | :- | :- |
| `MEM_IMAGE` | 0x1000000 | 表示區域內的記憶體分頁已對應到映像區段的檢視中。 |
| `MEM_MAPPED` | 0x40000 | 表示區域內的記憶體分頁已對應到區段的檢視中。 |
| `MEM_PRIVATE` | 0x20000 | 表示區域內的記憶體分頁為私人 (亦即不與其他處理序共用)。 |

*XMemFlags*<br />類型：ULONGLONG

*XMemFlags* 值會設定為配置記憶體時提供給 [XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc) 的值。如果記憶體是以 [VirtualAlloc](https://learn.microsoft.com/windows/desktop/api/memoryapi/nf-memoryapi-virtualalloc) 配置，則會指定 `XMEM_CPU` 值。如需詳細資訊，請參閱[備註](#remarksSection)。

*TagCode*<br />類型：DWORD

*TagFourCC* 成員的 24 位元編碼表示法。

*TagFourCC*<br />類型：CHAR\[4]

與以 [XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc) 配置之已認可記憶體區域相關聯的選擇性四字元代碼。

<a id="remarksSection" />

## 備註

[XMemVirtualQuery](/zh-TW/reference/system/xmem/functions/xmemvirtualquery) 會使用此結構來擷取呼叫處理序之虛擬位址空間中某個分頁範圍的相關資訊。如需記憶體配置的詳細資訊，請參閱[使用 Microsoft GDK Game OS 記憶體管理員](/zh-TW/build/console-features/memory/system-memory-working)。

遊戲所擁有的記憶體一律會有 *XMemFlags* 的值。對於遊戲所擁有的記憶體，*XMemFlags* 至少會設定為 `XMEM_CPU`。如果 *XMemFlags* 設定為 0，則該記憶體由系統擁有，不會計入遊戲的限制。

當可以進行 PIX GPU 擷取時，所有 `XMEM_GRAPHICS` 配置都會自動啟用寫入監看 (以 `MEM_WRITE_WATCH` 旗標表示)。PIX 會利用寫入監看來精確擷取 GPU 擷取的記憶體變更。如果在呼叫 [XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc) 或 [VirtualAlloc](https://learn.microsoft.com/windows/desktop/api/memoryapi/nf-memoryapi-virtualalloc) 時指定了 `MEM_WRITE_WATCH`，也會套用寫入監看。

<a id="requirementsSection" />

## 需求

**標頭：** xmem.h

**支援的平台：** XBOX One 系列主機和 XBOX Series 主機

<a id="seealsoSection" />

## 另請參閱

[XMemVirtualAlloc](/zh-TW/reference/system/xmem/functions/xmemvirtualalloc)<br />[XMem](/zh-TW/reference/system/xmem/xmem_members)


## Related topics

- [XMemVirtualQuery](/zh-TW/reference/system/xmem/functions/xmemvirtualquery.md)
- [XMemMakeTag](/zh-TW/reference/system/xmem/functions/xmemmaketag.md)
- [XMEM_OPTION](/zh-TW/reference/system/xmem/structs/xmem_option.md)
- [XMEM_OPTIONS](/zh-TW/reference/system/xmem/enums/xmem_options.md)
- [XMEM_ALLOCATION_HOOKS](/zh-TW/reference/system/xmem/structs/xmem_allocation_hooks.md)
