다음을 통해 공유


GetWsChangesEx 함수(psapi.h)

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

구문

BOOL GetWsChangesEx(
  [in]      HANDLE                         hProcess,
  [out]     PPSAPI_WS_WATCH_INFORMATION_EX lpWatchInfoEx,
  [in, out] PDWORD                         cb
);

매개 변수

[in] hProcess

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

[out] lpWatchInfoEx

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

[in, out] cb

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

반환 값

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

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

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

설명

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

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

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

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

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

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

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2008 [데스크톱 앱만 해당]
대상 플랫폼 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_EX

작업 집합 정보