Aracılığıyla paylaş


NameProfile

NameProfile fonksiyonu belirtilen işleme veya iş parçacığına bir dize ataması yapar.

NameProfile API yalnızca profil oluşturma araçları için kullanılabilir.NameProfile API örnekleme profiling için desteklenmiyor.

PROFILE_COMMAND_STATUS PROFILERAPI NameProfile(
                                   LPCTSTR pszName, 
                                   PROFILE_CONTROL_LEVEL Level,
                                   unsigned int dwId);

Parametreler

pszName

Profil oluşturma öğesinin adı.Bir ad geçersizdir (NameProfileA içindeki sonuçlanma NAME_ERROR_INVALID_NAME dönderir) eger:

  • NameProfileA içine geçirilen işaretçi NULL bir değerdir

  • PszName'in dize verileri bir sayıyla başlar

  • PszName'in dize verileri bir boşluk içerir

  • PszName'in dize verileri aşağıdaki karakterlerden birini içerir: ,;.`~!@#$%^&*()=[]{}|\?/<>

Level

Hangi performansta verileri toplama uygulanabilir profil düzeyini gösterir.Aşağıdaki PROFILE_CONTROL_LEVEL değerleri üç düzeyden biri olan hangi performans kolleksiyon verileri uygulanabilir belirtmek için kullanılabilir:

Numaralandırıcı

Tanımlama

PROFILE_GLOBALLEVEL

Genel düzey ayarları, profil oluşturma yürütmesindeki tüm işlemler ve iş parçacıklarını etkiler.

PROFILE_PROCESSLEVEL

İşlem düzeyi ayarları, belirli bir işlemin parçası olan tüm iş parçacıklarını etkiler.

PROFILE_THREADLEVEL

İş parçacığı profil oluşturma düzey ayarları belirtilen iş parçacığını etkiler.

dwId

Profil oluşturma düzeyi tanıtıcısı/kimlikleyicisi.Sistem tarafından oluşturulan işlem veya iş parçacığı tanımlayıcısını kullanın.

Özellik Değeri ve Dönüş Değeri

Fonksiyon PROFILE_COMMAND_STATUS numaralandırıcı kullanarak başarı veya başarısızlık belirtir.Dönüş değeri aşağıdakilerden biri olabilir:

Numaralandırıcı

Tanımlama

NAME_ERROR_ID_NOEXIST

Belirtilen profil oluşturma öğesi yok.

NAME_ERROR_INVALID_NAME

Ad geçersiz.

NAME_ERROR_LEVEL_NOEXIST

Belirtilen profil düzeyi yok.

NAME_ERROR_NO_SUPPORT

Belirtilen operasyon desteklenmiyor.

NAME_ERROR_OUTOFMEMORY

Olayı kaydetmek için bellek uygun değildi.

NAME_ERROR_REDEFINITION

Profil öğesine bir ad zaten atandı.Bu fonksiyonun içindeki ad gözardı edilir.

NAME_ERROR_TEXTTRUNCATED

Ad metni, null karakteri de içeren 32 karakteri aştı ve bu nedenle kırpıldı.

NAME_OK

Ad başarıyla kaydedildi.

Notlar

Her işlem veya iş parçacığına yalnızca bir ad atanabilir.Bir profil oluşturma öğesi adlandırıldıktan sonra söz konusu öğenin NameProfile yönelik çağrıları göz ardı edilir.

Eğer aynı ad farklı iş parçacıkları veya işlemlere verilmişse, rapor o adla o düzeydeki tüm öğelerden veriler içerecektir.

Eğer geçerli olandan farklı bir işlem veya iş parçacığı belirtirseniz, onu adlandırmadan önce başlatılmış ve yürütmesinin başlatılmış olduğundan emin olmanız gerekir.Aksi takdirde, NameProfile yöntemi başarısız olur.

Önemli notÖnemli

CreateProcess() ve CreateThread() API fonksiyonları işlem veya iş parçacığı başlatılmadan önce döndürebilirler.

.NET Framework Eşdeğeri

Microsoft.VisualStudio.Profiler.dll

Fonksiyon Bilgileri

Üstbilgi

VSPerf.h Ekle

Kitaplık

VSPerf.lib Kullan

Unicode

NameProfileW (Unicode) ve NameProfileA (ANSI) Olarak uygulanan.

Örnek

Aşağıdaki kod, NameProfile fonksiyon çağrısını göstermektedir.Örnek Win32 dize makrolarının kullanımını ve kodun ANSI etkin fonksiyonu çağırıp çağırmadığını belirlemek için ANSI derleyici ayarlarını varsayar.

void ExerciseNameProfile()
{
    // Variables used to print output.
    HRESULT hResult;
    TCHAR tchBuffer[256];

    // Create and initialize variables to pass to 
    // ExerciseNameProfile.  The value of this 
    // parameter is based on the needs of the code;
    // and for the sake of simplicity in this example, 
    // the variable is assigned an arbitrary value.
    TCHAR * profileName = TEXT("ExerciseNameProfile");

    // Declare enumeration to hold result of call to 
    // ExerciseNameProfle.
    PROFILE_COMMAND_STATUS nameResult;

    nameResult =  NameProfile(
        profileName,
        PROFILE_GLOBALLEVEL,
        PROFILE_CURRENTID);

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

#ifdef DEBUG
    OutputDebugString(tchBuffer);
#endif
}

Ayrıca bkz.

Diğer Kaynaklar

Visual Studio Profiler API Başvurusu (yerel)