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