Partager via


Type complexe StructDefinitionType

Définit une structure qui inclut un ou plusieurs éléments de données que vous souhaitez inclure avec l’événement.

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

Éléments enfants

Élément Type Description
Données DataDefinitionType Définit un élément de données que vous souhaitez inclure dans la structure.

Attributs

Nom Type Description
count CountType Nombre d’éléments dans un tableau de structures. Cet attribut indique que la structure définit un tableau de structures. Vous pouvez spécifier le nombre réel ou le nom d’un élément de données en dehors de la structure qui contient le nombre.
length LengthType Non disponible.
Windows Server 2008 et Windows Vista : Longueur de cette structure, en octets. Non disponible à partir de Windows 7.
name string Nom de la structure. Vous pouvez utiliser le nom pour référencer l’élément de données dans votre fragment XML si vous spécifiez une section UserData dans votre modèle.
Windows Vista : Cet attribut est facultatif.

Notes

Les fournisseurs écrivent la structure en tant qu’objet blob et non en tant que membres individuels de la structure. Si la structure C que vous écrivez contient des pointeurs (par exemple, un pointeur de type LPWSTR), les données d’événement contiennent la valeur du pointeur, et non les données déréférencrées.

Vous ne devez pas utiliser de structures, mais plutôt définir des éléments de données pour chaque membre et les écrire séparément. Si vous décidez d’utiliser la structure, la structure doit contenir uniquement des types intégraux et vous devez vous assurer que les membres de la structure s’alignent sur une limite de 8 octets. Si ce n’est pas le cas, vous recevrez probablement des erreurs d’alignement lorsque vous tentez d’accéder aux données. Envisagez d’utiliser la directive pack() #pragma pour forcer l’alignement sur une limite de 8 octets.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2008 [applications de bureau uniquement]