Komplexer StructDefinitionType-Typ

Definiert eine -Struktur, die ein oder mehrere Datenelemente enthält, die Sie in das Ereignis einschließen möchten.

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

Untergeordnete Elemente

Element type BESCHREIBUNG
Daten DataDefinitionType Definiert ein Datenelement, das Sie in die Struktur einschließen möchten.

Attributes

Name type BESCHREIBUNG
count CountType Die Anzahl der Elemente in einem Array von -Strukturen. Dieses Attribut gibt an, dass die -Struktur ein Array von -Strukturen definiert. Sie können die tatsächliche Anzahl oder den Namen eines Datenelements außerhalb der Struktur angeben, die die Anzahl enthält.
length LengthType Nicht verfügbar.
Windows Server 2008 und Windows Vista: Die Länge dieser Struktur in Bytes. Ab Windows 7 nicht verfügbar.
name Zeichenfolge Der Name der Struktur. Sie können den Namen verwenden, um auf das Datenelement in Ihrem XML-Fragment zu verweisen, wenn Sie einen UserData-Abschnitt in der Vorlage angeben.
Windows Vista: Dieses Attribut ist optional.

Bemerkungen

Anbieter schreiben die Struktur als Blob und nicht als einzelne Elemente der Struktur. Wenn die C-Struktur, die Sie schreiben, Zeiger enthält (z. B. einen Zeiger vom Typ LPWSTR), enthalten die Ereignisdaten den Zeigerwert, nicht die dereferenzierten Daten.

Sie sollten keine Strukturen verwenden, sondern stattdessen Datenelemente für jeden Member definieren und separat schreiben. Wenn Sie sich für die Verwendung der Struktur entscheiden, sollte die Struktur nur ganzzahlige Typen enthalten, und Sie müssen sicherstellen, dass die Member der Struktur an einer 8-Byte-Grenze ausgerichtet sind. Wenn sie dies nicht tun, erhalten Sie wahrscheinlich Ausrichtungsfehler, wenn Sie versuchen, auf die Daten zuzugreifen. Erwägen Sie die Verwendung der # pragma pack()-Direktive, um die Ausrichtung an einer 8-Byte-Grenze zu erzwingen.

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows [Nur Vista-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2008-Desktop-Apps]