다음을 통해 공유


GetWsChanges 함수(psapi.h)

이 함수 또는 InitializeProcessForWsWatch 함수가 마지막으로 호출된 이후 지정된 프로세스의 작업 집합에 추가된 페이지에 대한 정보를 검색합니다.

확장 정보를 검색하려면 GetWsChangesEx 함수를 사용합니다.

구문

BOOL GetWsChanges(
  [in]  HANDLE                      hProcess,
  [out] PPSAPI_WS_WATCH_INFORMATION lpWatchInfo,
  [in]  DWORD                       cb
);

매개 변수

[in] hProcess

프로세스에 대한 핸들입니다. 핸들에는 PROCESS_QUERY_INFORMATION 액세스 권한이 있어야 합니다. 자세한 내용은 프로세스 보안 및 액세스 권한을 참조하세요.

[out] lpWatchInfo

PSAPI_WS_WATCH_INFORMATION 구조의 배열을 수신하는 사용자 할당 버퍼에 대한 포인터입니다. Array는 FaultingPc 멤버가 NULL인 구조체로 종료됩니다.

[in] cb

lpWatchInfo 버퍼의 크기(바이트)입니다.

반환 값

함수가 성공하면 반환 값이 0이 아닙니다.

함수가 실패하면 반환 값은 0입니다. 확장 오류 정보를 가져오려면 GetLastError를 호출합니다.

getLastErrorlpWatchInfo 버퍼가 모든 작업 집합 변경 레코드를 포함할 만큼 크지 않으면 ERROR_INSUFFICIENT_BUFFER 반환합니다. 버퍼가 비어 있는 상태로 반환됩니다. 버퍼에 대해 더 큰 메모리 블록을 다시 할당하고 를 다시 호출합니다.

설명

운영 체제는 프로세스당 하나의 버퍼를 사용하여 작업 집합 변경 레코드를 유지 관리합니다. 둘 이상의 애플리케이션(또는 동일한 애플리케이션의 여러 스레드)이 동일한 프로세스 핸들을 사용하여 이 함수를 호출하는 경우 각 호출이 버퍼를 비우기 때문에 두 애플리케이션 모두 작업 집합 변경 내용을 완전히 계산하지 않습니다.

운영 체제는 쿼리를 처리하고 버퍼를 비우는 동안 새 변경 레코드를 기록하지 않습니다. 함수는 다른 쿼리를 처리하는 동안 동시 쿼리가 수신되면 오류 코드를 NO_MORE_ENTRIES 설정합니다.

버퍼가 가득 차면 이 함수 또는 InitializeProcessForWsWatch 함수가 호출될 때까지 버퍼에 새 레코드가 추가되지 않습니다. 가능한 데이터 손실을 방지하기 위해 충분한 빈도로 이 메서드를 호출해야 합니다. 레코드가 손실되면 FaultingPc 멤버가 NULL이고 FaultingVa 멤버가 손실된 레코드 수로 설정된 구조체로 배열이 종료됩니다.

Windows Server 2003 및 Windows XP: 레코드가 손실되면 Array는 FaultingPc 멤버가 NULL이고 FaultingVa 멤버가 1인 구조체로 종료됩니다.

Windows 7 및 Windows Server 2008 R2부터 Psapi.h는 PSAPI 함수에 대한 버전 번호를 설정합니다. PSAPI 버전 번호는 함수를 호출하는 데 사용되는 이름과 프로그램이 로드해야 하는 라이브러리에 영향을 줍니다.

PSAPI_VERSION 2 이상인 경우 이 함수는 Psapi.h에서 K32GetWsChanges로 정의되고 Kernel32.lib 및 Kernel32.dll 내보냅니다. PSAPI_VERSION 1이면 이 함수는 Psapi.h에서 GetWsChanges로 정의되고 Psapi.lib에서 내보내고 K32GetWsChanges를 호출하는 래퍼로 Psapi.dll.

이전 버전의 Windows 및 Windows 7 이상 버전에서 실행해야 하는 프로그램은 항상 이 함수를 GetWsChanges로 호출해야 합니다. 기호의 올바른 해상도를 보장하려면 TargetLIBS 매크로에 Psapi.lib를 추가하고 -DPSAPI_VERSION=1로 프로그램을 컴파일합니다. 런타임 동적 연결을 사용하려면 Psapi.dll 로드합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows XP [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2003 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 psapi.h
라이브러리 Windows 7 및 Windows Server 2008 R2의 Kernel32.lib; Windows 7 및 Windows Server 2008 R2의 Psapi.lib(PSAPI_VERSION=1인 경우) Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 Psapi.lib
DLL Windows 7 및 Windows Server 2008 R2의 Kernel32.dll Windows 7 및 Windows Server 2008 R2에서 Psapi.dll(PSAPI_VERSION=1인 경우) Windows Server 2008, Windows Vista, Windows Server 2003 및 Windows XP의 Psapi.dll

추가 정보

EnumProcesses

InitializeProcessForWsWatch

PSAPI 함수

PSAPI_WS_WATCH_INFORMATION

작업 집합 정보