SuspendProfileSuspendProfile

SuspendProfile 메서드는 지정된 프로파일링 수준에 대한 Suspend/Resume 카운터를 증가시킵니다.The SuspendProfile method increments the Suspend/Resume counter for the specified profiling level.

구문Syntax

PROFILE_COMMAND_STATUS PROFILERAPI SuspendProfile(  
                       PROFILE_CONTROL_LEVEL Level,   
                       unsigned int dwId);  

매개 변수Parameters

Level

성능 데이터 수집을 적용할 수 있는 프로필 수준을 나타냅니다.Indicates the profile level to which performance data collection can be applied. 다음 PROFILE_CONTROL_LEVEL 열거자는 성능 데이터 수집을 적용할 수 있는 세 가지 수준 중 하나를 나타내는 데 사용될 수 있습니다.The following PROFILE_CONTROL_LEVEL enumerators can be used to indicate one of the three levels to which performance data collection can be applied:

열거자Enumerator 설명Description
PROFILE_GLOBALLEVELPROFILE_GLOBALLEVEL 전역 수준 설정은 프로파일링 실행의 모든 프로세스와 스레드에 영향을 줍니다.Global level setting affects all processes and threads in the profiling run.
PROFILE_PROCESSLEVELPROFILE_PROCESSLEVEL 프로세스 수준 설정은 지정된 프로세스의 일부인 모든 스레드에 영향을 줍니다.Process level setting affect all threads that are part of specified process.
PROFILE_THREADLEVELPROFILE_THREADLEVEL 스레드 프로파일링 수준 설정은 지정된 스레드에 영향을 줍니다.Thread profiling Level setting affects the specified thread.

dwId

시스템에서 생성한 프로세스 또는 스레드 식별자입니다.The process or thread identifier generated by the system.

속성 값/반환 값Property Value/Return Value

이 함수는 PROFILE_COMMAND_STATUS 열거형을 사용하여 성공 또는 실패를 나타냅니다.The function indicates success or failure by using PROFILE_COMMAND_STATUS enumeration. 반환 값은 다음 중 하나일 수 있습니다.The return value can be one of the following:

열거자Enumerator 설명Description
PROFILE_ERROR_ID_NOEXISTPROFILE_ERROR_ID_NOEXIST 프로파일링 요소 ID가 없습니다.The profiling element ID does not exist.
PROFILE_ERROR_LEVEL_NOEXISTPROFILE_ERROR_LEVEL_NOEXIST 지정된 프로파일링 수준이 없습니다.The profiling level specified does not exist.
PROFILE_ERROR_MODE_NEVERPROFILE_ERROR_MODE_NEVER 이 함수가 호출될 때 프로파일링 모드가 NEVER로 설정되었습니다.The profiling mode was set to NEVER when the function was called.
PROFILE_ERROR_NOT_YET_IMPLEMENTEDPROFILE_ERROR_NOT_YET_IMPLEMENTED 프로파일링 함수 호출, 프로파일링 수준 또는 호출과 수준의 조합이 아직 구현되지 않았습니다.The profiling function call, profiling level, or combination of call and level is not yet implemented.
PROFILE_OKPROFILE_OK 호출이 성공했습니다.The call was successful.

설명Remarks

Suspend/Resume 카운터의 초기값은 0입니다.The initial value of the Suspend/Resume counter is 0. SuspendProfile에 대한 각 호출은 Suspend/Resume 카운트에 1을 추가합니다. ResumeProfile에 대한 각 호출은 1을 뺍니다.Each call to SuspendProfile adds 1 to the Suspend/Resume count; each call to ResumeProfile subtracts 1.

Suspend/Resume 카운트가 0보다 큰 경우 수준에 대한 Suspend/Resume 상태는 OFF입니다.When the Suspend/Resume count is greater than 0, the Suspend/Resume state for the level is OFF. 카운트가 0보다 작거나 같은 경우 Suspend/Resume 상태는 ON입니다.When the count is less than or equal to 0, the Suspend/Resume state is ON.

Start/Stop 상태와 Suspend/Resume 상태가 둘 다 ON인 경우 수준에 대한 프로파일링 상태는 ON입니다.When the Start/Stop state and the Suspend/Resume state are both ON, the profiling state for the level is ON. 프로파일링될 스레드의 경우 스레드에 대한 전역, 프로세스 및 스레드 수준 상태는 모두 ON이어야 합니다.For a thread to be profiled, the global, process, and thread level states for the thread must all be ON.

.NET Framework의 해당 값.NET Framework Equivalent

Microsoft.VisualStudio.Profiler.dllMicrosoft.VisualStudio.Profiler.dll

함수 정보Function Information

헤더: VSPerf.h에서 선언됨Header: Declared in VSPerf.h

가져오기 라이브러리: VSPerf.libImport library: VSPerf.lib

예제Example

다음 예제에서는 SuspendProfile 메서드를 보여 줍니다.The following example illustrates the SuspendProfile method. 이 예에서는 StartProfile에 대한 이전 호출이 PROFILE_CURRENTID에 의해 식별된 프로세스 또는 스레드에 대해 만들어졌다고 가정합니다.This example assumes that a prior call to StartProfile has been made for the process or thread identified by PROFILE_CURRENTID.

void ExerciseSuspendProfile()  
{  
    // The initial value of the Suspend/Resume counter is 0.  
    // Each call to SuspendProfile adds 1 to the  
    // Suspend/Resume count; each call  
    // to ResumeProfile subtracts 1.  

    // Variables used to print output  
    HRESULT hResult;  
    TCHAR tchBuffer[256];  

    // Declare enumeration to hold result of call  
    // to SuspendProfile  
    PROFILE_COMMAND_STATUS profileResult;  

    profileResult = SuspendProfile(  
        PROFILE_GLOBALLEVEL,  
        PROFILE_CURRENTID);  

    // Format and print result.  
    LPCTSTR pszFormat = TEXT("%s %d.\0");  
    TCHAR* pszTxt = TEXT("SuspendProfile returned");  
    hResult = StringCchPrintf(tchBuffer, 256, pszFormat,   
        pszTxt, profileResult);  

#ifdef DEBUG  
    OutputDebugString(tchBuffer);  
#endif  
}  

참고 항목See Also

Visual Studio 프로파일러 API 참조(네이티브)Visual Studio Profiler API Reference (Native)