StopProfile 関数は、指定されたプロファイル レベルのカウンターを 0 (オフ) に設定します。The StopProfile function sets the counter to 0 (off) for the specified profiling level.


                       PROFILE_CONTROL_LEVEL Level,   
                       unsigned int dwId);  



パフォーマンス データ収集を適用できるプロファイル レベルを示します。Indicates the profile level to which performance data collection can be applied. 次の PROFILE_CONTROL_LEVEL 列挙子を使用して、パフォーマンス データ収集を適用できる 3 つのレベルのいずれかを示すことができます。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.


システムによって生成される、プロセスまたはスレッドの ID。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.


StartProfile および StopProfile によって、プロファイル レベルの開始/停止状態を制御します。StartProfile and StopProfile control the Start/Stop state for the profiling level. 開始/停止の既定値は 1 です。The default value of Start/Stop is 1. 初期値はレジストリで変更できます。The initial value can be changed in the registry. StartProfile を呼び出すたびに、開始/停止が 1 に設定され、StopProfile を呼び出すたびに 0 に設定されます。Each call to StartProfile sets Start/Stop to 1; each call to StopProfile sets it to 0.

開始/停止が 0 よりも大きい場合、そのレベルの開始/停止状態はオンになります。When the Start/Stop is greater than 0, the Start/Stop state for the level is ON. 開始/停止が 0 以下の場合、開始/停止状態はオフになります。When it is less than or equal to 0, the Start/Stop state is OFF.

開始/停止状態と保留/再開状態の両方がオンの場合、そのレベルのプロファイル状態はオンです。When the Start/Stop state and the Suspend/Resume state are both ON, the profiling state for the level is 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


関数の情報Function information

ヘッダー : VSPerf.h で宣言Header: Declared in VSPerf.h

インポート ライブラリ : VSPerf.libImport library: VSPerf.lib


StopProfile メソッドの例を以下に示します。The following example illustrates the StopProfile method. この例は、PROFILE_CURRENTID で識別される同じスレッドまたはプロセスに対して、StartProfile メソッドが呼び出されていることを前提としています。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(  

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

#ifdef DEBUG  

関連項目See also

Visual Studio プロファイラー API リファレンス (ネイティブ)Visual Studio profiler API reference (native)