次の方法で共有


StructDefinitionType 複合型

イベントに含める 1 つ以上のデータ項目を含む構造体を定義します。

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

子要素

要素 Type Description
データ DataDefinitionType 構造体に含めるデータ項目を定義します。

属性

名前 説明
count CountType 構造体の配列内の要素の数。 この属性は、構造体が構造体の配列を定義していることを示します。 カウントを含む構造体の外部で、実際のカウントまたはデータ項目の名前を指定できます。
length LengthType 使用できません。
Windows Server 2008 と Windows Vista: この構造体の長さ (バイト単位)。 Windows 7 以降では使用できません。
name string 構造体の名前。 テンプレートで UserData セクションを指定する場合は、 という名前を使用して XML フラグメント内のデータ項目を参照できます。
Windows Vista: この属性は省略可能です。

解説

プロバイダーは、構造体を BLOB として書き込み、構造体の個々のメンバーとして書き込むわけではありません。 書き込んでいる C 構造体にポインター (LPWSTR 型のポインターなど) が含まれている場合、イベント データには逆参照されたデータではなくポインター値が含まれます。

構造体を使用するのではなく、メンバーごとにデータ項目を定義し、個別に書き込む必要があります。 構造体を使用する場合、構造体には整数型のみを含める必要があり、構造体のメンバーが 8 バイトの境界に揃っていることを確認する必要があります。 そうでない場合は、データにアクセスしようとすると、配置エラーが発生する可能性があります。 #pragma pack() ディレクティブを使用して、8 バイト境界に強制的に配置することを検討してください。

要件

要件
サポートされている最小のクライアント
Windows Vista [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows Server 2008 [デスクトップ アプリのみ]