StopProfileStopProfile

StopProfile 함수는 지정된 프로파일링 수준에 대한 카운터를 0(off)으로 설정합니다.The StopProfile function sets the counter to 0 (off) for the specified profiling level.

구문Syntax

PROFILE_COMMAND_STATUS PROFILERAPI StopProfile(  
                       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

StartProfile 및 StopProfile은 프로파일링 수준에 대한 Start/Stop 상태를 제어합니다.StartProfile and StopProfile control the Start/Stop state for the profiling level. Start/Stop의 기본값은 1입니다.The default value of Start/Stop is 1. 레지스트리에서 초기 값을 변경할 수 있습니다.The initial value can be changed in the registry. StartProfile에 대한 각 호출은 Start/Stop을 1로 설정합니다. StopProfile에 대한 각 호출은 0으로 설정합니다.Each call to StartProfile sets Start/Stop to 1; each call to StopProfile sets it to 0.

Start/Stop이 0보다 큰 경우 수준에 대한 Start/Stop 상태는 ON입니다.When the Start/Stop is greater than 0, the Start/Stop state for the level is ON. 0보다 작거나 같은 경우 Start/Stop 상태가 OFF입니다.When it is less than or equal to 0, the Start/Stop state is OFF.

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

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

void ExerciseStopProfile()  
{  
    // StartProfile and StopProfile control the   
    // Start/Stop state for the profiling level.   
    // The default initial value of Start/Stop is 1.   
    // The initial value can be changed in the registry.   
    // Each call to StartProfile sets Start/Stop to 1;   
    // each call to StopProfile sets it to 0.   

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

    // Declare enumeration to hold result of call  
    // to StopProfile.  
    PROFILE_COMMAND_STATUS profileResult;  

    profileResult = StopProfile(  
        PROFILE_THREADLEVEL,  
        PROFILE_CURRENTID);  

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

#ifdef DEBUG  
    OutputDebugString(tchBuffer);  
#endif  
}  

참고 항목See Also

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