Compartilhar via


NameProfile

The NameProfile função atribui uma seqüência de caracteres para o processo especificado ou thread.

A API NameProfile só está disponível para criação de perfil de instrumentação.Não há suporte para NameProfile API para a criação de perfil de amostragem.

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

Parâmetros

pszName

O nome do elemento criação de perfil.Um nome é inválido (resultando em NameProfileA retorno NAME_ERROR_INVALID_NAME) se:

  • O ponteiro passado para NameProfileA é um valor nulo

  • Os dados de seqüência de caracteres de pszName começam com um número

  • Os dados de seqüência de caracteres de pszName contém um espaço

  • Os dados de seqüência de caracteres de pszName contém qualquer um dos seguintes caracteres:,. ` ~! @ # $ % ^ & * () = [] {} |\? / <>

Level

Indica o nível de analisar ao qual desempenho coleta de dados podem ser aplicadas.A seguir PROFILE_CONTROL_LEVEL enumeradores podem ser usados para indicar um dos três níveis de quais dados de desempenho coleção podem ser aplicadas:

dwId

Identificador de nível de criação de perfil.Use o processo ou thread identificador gerado pelo sistema.

Valor de Propriedade/Valor Retornado

A função indica sucesso ou fracasso usando PROFILE_COMMAND_STATUS enumeração.O valor retornado pode ser uma das seguintes opções:

Enumerador

Descrição

NAME_ERROR_ID_NOEXIST

O elemento de criação de perfil especificado não existe.

NAME_ERROR_INVALID_NAME

O nome é inválido.

NAME_ERROR_LEVEL_NOEXIST

O analisar nível especificado não existe.

NAME_ERROR_NO_SUPPORT

Não há suporte para a operação especificada.

NAME_ERROR_OUTOFMEMORY

Não havia memória disponível para registrar o evento.

NAME_ERROR_REDEFINITION

Um nome já foi atribuído ao elemento de analisar.O nome nesta função é ignorado.

NAME_ERROR_TEXTTRUNCATED

O texto de nome excedeu 32 caracteres, incluindo o caractere nulo e, portanto, foi truncado.

NAME_OK

Nome foi registrado com êxito.

Comentários

Apenas um nome pode ser atribuído a cada processo ou thread.Depois de um elemento de criação de perfil nomeado, chamadas subseqüentes ao NameProfile desse elemento são ignoradas.

Se o mesmo nome for fornecido para diferentes segmentos ou processos, o relatório inclui dados de todos os elementos nesse nível com esse nome.

Se você especificar um processo ou segmento diferente do corrente, faça-se de que foi inicializado e iniciado em execução antes de nomeá-la.Caso contrário, o método NameProfile falhará.

Observação importante:

() CreateProcess ) e funções da API CreateThread() podem retornar antes do thread ou processo é inicializado.

Equivalente do NET Framework

Microsoft.VisualStudio.criador de perfil.dll

Informações de função

Header

Incluir VSPerf.h

Biblioteca

Use VSPerf.lib

Unicode

Implementada sistema autônomo NameProfileW (Unicode) e NameProfileA (ANSI).

Exemplo

O código a seguir ilustra a telefonar de função NameProfile.O exemplo supõe que o uso de macros de seqüência de caracteres Win32 e as configurações do compilador para ANSI determinar se as chamadas de código o ANSI habilitados função.

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
}

Consulte também

Outros recursos

(Nativa) de referência do API criador de perfil do Visual Studio