> ## 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.

# XMemVirtualQuery

> XMemVirtualQuery

# XMemVirtualQuery

호출 프로세스의 가상 주소 공간에서 페이지 범위에 대한 정보를 검색합니다.

<a id="syntaxSection" />

## 구문

```cpp theme={null}
BOOL XMemVirtualQuery(  
         HANDLE Process,  
         PVOID Address,  
         PXMEM_BASIC_INFORMATION Buffer  
)  
```

<a id="parametersSection" />

### 매개 변수

*Process*   \_In\_\
형식: HANDLE

프로세스 핸들이며, 일반적으로 [GetCurrentProcess](https://learn.microsoft.com/windows/desktop/api/processthreadsapi/nf-processthreadsapi-getcurrentprocess)를 호출하여 얻습니다.

*Address*   \_In\_opt\_\
형식: PVOID

쿼리할 페이지 영역의 기본 주소에 대한 포인터입니다. 이 값은 다음 페이지 경계로 반내림됩니다. 이 매개 변수가 프로세스에서 액세스할 수 있는 가장 높은 메모리 주소보다 위의 주소로 설정된 경우 함수가 실패하고 오류 코드가 **ERROR\_INVALID\_PARAMETER**로 설정됩니다.

*Buffer*   \_Out\_\
형식: PXMEM\_BASIC\_INFORMATION

지정된 페이지 범위에 대한 정보가 반환되는 [XMEM\_BASIC\_INFORMATION](/reference/system/xmem/structs/xmem_basic_information) 구조체에 대한 포인터입니다.

<a id="retvalSection" />

### 반환 값

형식: BOOL

성공하면 `TRUE`를 반환하고, 그렇지 않으면 `FALSE`를 반환합니다. 확장 오류 정보를 가져오려면 [GetLastError](https://msdn.microsoft.com/library/windows/desktop/ms679360\(v=vs.85\).aspx)를 호출하세요.

<a id="remarksSection" />

## 설명

도구는 원격 프로세스에 핸들을 전달하여 현재 프로세스 외부에서 타이틀을 쿼리할 수 있습니다.

쿼리된 메모리 영역에 연결된 선택적 4자 코드 태그가 있는 경우 태그는 `TagFourCC` 필드에 포함되며 `Buffer`에서 반환된 `XMEM_BASIC_INFORMATION` 구조체의 `TagCode` 필드에서 24비트 표현으로 인코딩됩니다. 그렇지 않으면 `TagFourCC` 필드가 NULL 값으로 채워지고 `TagCode` 필드는 무시되어야 합니다. 태그에 대한 자세한 내용은 [XMemVirtualAlloc](/reference/system/xmem/functions/xmemvirtualalloc)을 참조하세요.\
\u0001\u0001\u0001
예제: 'XMemVirtualAlloc'에 대한 직접 호출로 할당된 메모리에 대한 총 메모리 사용량을 계산하려면 'XMemSetOption'과 'XMemVirtualQuery'의 조합이 필요합니다.

```cpp theme={null}
// 커밋 추적을 활성화하려면
XMEM_OPTION option;
option.Option = eXMEMOPT_XMEMALLOCDEFAULT_TAG_VIRTUALALLOC;
option.u.Bool = TRUE;
XMemSetOption(option);

// 총 커밋을 쿼리하려면
SIZE_T address = 0;
SIZE_T commitSize = 0;
XMEM_BASIC_INFORMATION info; = {};
while (XMemVirtualQuery(GetCurrentProcess(), (PVOID)address, &info))
{
        if ((info.State & MEM_COMMIT) &&
                (*(PDWORD)(info.TagFourCC) == *(PDWORD)("XmVA"))) {

                commitSize += info.RegionSize;
        }

        address += info.RegionSize;
}
```

<a id="requirementsSection" />

## 요구 사항

**헤더:** xmem.h

**라이브러리:** xmem.lib

**지원 플랫폼:** XBOX One 제품군 콘솔 및 XBOX Series 콘솔

<a id="seealsoSection" />

## 함께 보기

[XMEM\_BASIC\_INFORMATION](/reference/system/xmem/structs/xmem_basic_information)\
[XMem](/reference/system/xmem/xmem_members)


## Related topics

- [Microsoft GDK Game OS 메모리 관리자 사용](/ko/build/console-features/memory/system-memory-working.md)
- [XMemMakeTag](/ko/reference/system/xmem/functions/xmemmaketag.md)
- [XMemMapPhysicalPages](/ko/reference/system/xmem/functions/xmemmapphysicalpages.md)
- [XMemMapPhysicalPagesScatter](/ko/reference/system/xmem/functions/xmemmapphysicalpagesscatter.md)
- [XblMultiplayerSessionQuery](/ko/reference/live/xsapi-c/multiplayer_c/structs/xblmultiplayersessionquery.md)
