Compartilhar via


Tipo complexo StructDefinitionType

Define uma estrutura que inclui um ou mais itens de dados que você deseja incluir com o evento.

<xs:complexType name="StructDefinitionType"
    mixed="true"
>
    <xs:sequence>
        <xs:element name="data"
            type="DataDefinitionType"
            maxOccurs="unbounded"
         />
    </xs:sequence>
    <xs:attribute name="name"
        type="string"
        use="required"
     />
    <xs:attribute name="length"
        type="LengthType"
        use="optional"
     />
    <xs:attribute name="count"
        type="CountType"
        use="optional"
     />
    <xs:anyAttribute
        processContents="lax"
        namespace="##other"
     />
</xs:complexType>

Elementos filho

Elemento Type Descrição
Dados DataDefinitionType Define um item de dados que você deseja incluir na estrutura .

Atributos

Nome Tipo Descrição
count CountType O número de elementos em uma matriz de estruturas. Esse atributo indica que a estrutura está definindo uma matriz de estruturas. Você pode especificar a contagem real ou o nome de um item de dados fora da estrutura que contém a contagem.
comprimento LengthType Não disponível.
Windows Server 2008 e Windows Vista: O comprimento dessa estrutura, em bytes. Não disponível a partir do Windows 7.
name string O nome da estrutura. Você pode usar o nome para fazer referência ao item de dados no fragmento XML se especificar uma seção UserData em seu modelo.
Windows Vista: Esse atributo é opcional.

Comentários

Os provedores gravam a estrutura como um blob e não como membros individuais da estrutura. Se a estrutura C que você está escrevendo contiver ponteiros (por exemplo, um ponteiro do tipo LPWSTR), os dados do evento conterão o valor do ponteiro, não os dados desreferenciados.

Você não deve usar estruturas, mas deve definir itens de dados para cada membro e gravá-los separadamente. Se você decidir usar a estrutura, a estrutura deverá conter apenas tipos integrais e você deve garantir que os membros da estrutura se alinhem a um limite de 8 bytes. Se você não fizer isso, provavelmente receberá erros de alinhamento ao tentar acessar os dados. Considere usar a diretiva #pragma pack() para forçar o alinhamento em um limite de 8 bytes.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows Server 2008 [somente aplicativos da área de trabalho]