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