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 in Ihrer Vorlage einen Abschnitt UserData angeben. Windows Vista: Dieses Attribut ist optional. |
Bemerkungen
Anbieter schreiben die Struktur als Blob und nicht als einzelne Member 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 abgeleiteten Daten.
Sie sollten keine Strukturen verwenden, sondern stattdessen Datenelemente für jedes Element definieren und separat schreiben. Wenn Sie sich für die Verwendung der Struktur entscheiden, sollte die Struktur nur integrale Typen enthalten, und Sie müssen sicherstellen, dass die Member der Struktur an einer 8-Byte-Grenze ausgerichtet sind. Andernfalls 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.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2008 [nur Desktop-Apps] |