Win32 API 日本語リファレンス
ホームSystem.Performance › IConfigurationDataCollector

IConfigurationDataCollector

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID03837514-098b-11d8-9414-505054503030継承元IDataCollector呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl32

公式ドキュメント

収集時点でのコンピューターの設定を収集します。

解説(Remarks)

以下の例は、このオブジェクトを作成するために CreateDataCollectorFromXml を呼び出す場合に、このオブジェクトの初期化に使用できる XML を示しています。IDataCollector::Xml プロパティもこの XML を返します。

<ConfigurationDataCollector>
    <FileMaxCount/>  
    <FileMaxRecursiveDepth/>  
    <FileMaxTotalSize/>  
    <File/>  <!-- Specify this element for each file -->
    <ManagementQuery/>  <!-- Specify this element for each WMI query -->
    <QueryNetworkAdapters/>
    <RegistryKey/>  <!-- Specify this element for each registry key -->
    <RegistryMaxRecursiveDepth/>
    <SystemStateFile/>  
</ConfigurationDataCollector>

この例には、同様に指定する必要がある IDataCollector から継承されたプロパティ要素は示されていない点に注意してください。

コレクターを作成する XML を指定する際は、設定したいプロパティの要素のみを指定できます。プロパティを指定しない場合、PLA は既定値を提供します。コレクターの XML を取得すると、その XML には IDataCollector の要素を含むすべての要素が含まれます。

メソッド 18

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 32 HRESULT get_FileMaxCount(DWORD* count)

収集するファイルの最大数を取得または設定します。(Get)

countDWORD*out現在の収集するファイルの最大数を受け取るポインタである。
vtbl 33 HRESULT put_FileMaxCount(DWORD count)

収集するファイルの最大数を取得または設定します。(Put)

countDWORDin収集するファイルの最大数を設定する。
vtbl 34 HRESULT get_FileMaxRecursiveDepth(DWORD* depth)

ファイルを再帰的に収集するサブフォルダーの最大数を取得または設定します。(Get)

depthDWORD*out現在のファイル収集時の最大再帰深さを受け取るポインタである。
vtbl 35 HRESULT put_FileMaxRecursiveDepth(DWORD depth)

ファイルを再帰的に収集するサブフォルダーの最大数を取得または設定します。(Put)

depthDWORDinファイル収集時の最大再帰深さを設定する。
vtbl 36 HRESULT get_FileMaxTotalSize(DWORD* size)

収集できるすべてのファイルを合計した最大ファイルサイズを取得または設定します。(Get)

sizeDWORD*out現在の収集ファイルの合計最大サイズを受け取るポインタである。
vtbl 37 HRESULT put_FileMaxTotalSize(DWORD size)

収集できるすべてのファイルを合計した最大ファイルサイズを取得または設定します。(Put)

sizeDWORDin収集ファイルの合計最大サイズを設定する。
vtbl 38 HRESULT get_Files(SAFEARRAY** Files)

収集するファイルを取得または設定します。(Get)

FilesSAFEARRAY**out現在の収集対象ファイルの一覧を受け取るポインタである。

解説(Remarks)

IConfigurationDataCollector::FileMaxCountIConfigurationDataCollector::FileMaxRecursiveDepthIConfigurationDataCollector::FileMaxTotalSize プロパティを使用して、PLA が収集するファイルの数を制限できます。

PLA は IDataCollectorSet::LatestOutputLocation プロパティで指定された場所にファイルをコピーします。同じ名前のファイルが複数ある場合、PLA は最初のファイル名はそのまま残し、同じ名前を持つ以降のすべてのファイルに _n(n は 1 から始まる連番)を付加します。XML レポートを使用して各ファイルの由来を判別できます。

このプロパティは FindFirstFile 関数と FindNextFile 関数を使用して深さ優先探索を実行します。たとえば、次のディレクトリ構造を想定します。

MyDir
    Subdir1
        Subdir1.1
            a.txt
            b.txt
        Subdir1.2
            c.txt
        g.txt  (folder in Subdir1)
        h.txt  (folder in Subdir1)
    Subdir 2
        subdir2.1
            y.txt
            z.txt
            subdir2.1.1
                m.txt
    q.txt  (folder in MyDir)
    s.txt  (folder in MyDir)

PLA は次の順序でファイルを収集します(制限に達しなかった場合)。

q.txt
s.txt
g.txt
h.txt
a.txt
b.txt
c.txt
y.txt
z.txt
m.txt
vtbl 39 HRESULT put_Files(SAFEARRAY* Files)

収集するファイルを取得または設定します。(Put)

FilesSAFEARRAY*in収集対象ファイルの一覧を設定する。

解説(Remarks)

IConfigurationDataCollector::FileMaxCountIConfigurationDataCollector::FileMaxRecursiveDepthIConfigurationDataCollector::FileMaxTotalSize プロパティを使用して、PLA が収集するファイルの数を制限できます。

PLA は IDataCollectorSet::LatestOutputLocation プロパティで指定された場所にファイルをコピーします。同じ名前のファイルが複数ある場合、PLA は最初のファイル名はそのまま残し、同じ名前を持つ以降のすべてのファイルに _n(n は 1 から始まる連番)を付加します。XML レポートを使用して各ファイルの由来を判別できます。

このプロパティは FindFirstFile 関数と FindNextFile 関数を使用して深さ優先探索を実行します。たとえば、次のディレクトリ構造を想定します。

MyDir
    Subdir1
        Subdir1.1
            a.txt
            b.txt
        Subdir1.2
            c.txt
        g.txt  (folder in Subdir1)
        h.txt  (folder in Subdir1)
    Subdir 2
        subdir2.1
            y.txt
            z.txt
            subdir2.1.1
                m.txt
    q.txt  (folder in MyDir)
    s.txt  (folder in MyDir)

PLA は次の順序でファイルを収集します(制限に達しなかった場合)。

q.txt
s.txt
g.txt
h.txt
a.txt
b.txt
c.txt
y.txt
z.txt
m.txt
vtbl 40 HRESULT get_ManagementQueries(SAFEARRAY** Queries)

実行する Windows Management Instrumentation (WMI) クエリを取得または設定します。(Get)

QueriesSAFEARRAY**out現在の実行する WMI 管理クエリの一覧を受け取るポインタである。

解説(Remarks)

WMI クエリの記述方法の詳細については、WQL (SQL for WMI) を参照してください。

vtbl 41 HRESULT put_ManagementQueries(SAFEARRAY* Queries)

実行する Windows Management Instrumentation (WMI) クエリを取得または設定します。(Put)

QueriesSAFEARRAY*in実行する WMI 管理クエリの一覧を設定する。

解説(Remarks)

WMI クエリの記述方法の詳細については、WQL (SQL for WMI) を参照してください。

vtbl 42 HRESULT get_QueryNetworkAdapters(VARIANT_BOOL* network)

インストールされているネットワークアダプターに対して、オフロード機能やその他の構成情報を照会するかどうかを示す値を取得または設定します。(Get)

networkVARIANT_BOOL*out現在のネットワークアダプターを照会するかどうかを受け取るポインタである。
vtbl 43 HRESULT put_QueryNetworkAdapters(VARIANT_BOOL network)

インストールされているネットワークアダプターに対して、オフロード機能やその他の構成情報を照会するかどうかを示す値を取得または設定します。(Put)

networkVARIANT_BOOLinネットワークアダプターを照会するかどうかを設定する。
vtbl 44 HRESULT get_RegistryKeys(SAFEARRAY** query)

収集するレジストリキーの一覧を取得または設定します。

querySAFEARRAY**out未定

解説(Remarks)

次のレジストリハイブからレジストリデータを収集できます。

レジストリ値を収集するには、値名までのフルパスを指定します。たとえば \HKEY_LOCAL_MACHINE\MyKey\MyValue のように指定します。

レジストリキー配下のすべての値を収集するには、レジストリキーまでのフルパスを指定します。たとえば \HKEY_LOCAL_MACHINE\MyKey\ のように指定します。

レジストリキーとそのサブキー配下のすべての値を収集するには、パスの最後の区切りにバックスラッシュを 2 つ使用します。たとえば \\computername\HKEY_LOCAL_MACHINE\MyKey\\ のように指定します。PLA は IConfigurationDataCollector::RegistryMaxRecursiveDepth プロパティで指定されたレベルまでレジストリデータを再帰的に収集します。

リモートコンピューターからレジストリ情報を収集するには、レジストリパスの先頭にコンピューター名を含めます。たとえば \\computername\HKEY_LOCAL_MACHINE\MyKey\MyValue のように指定します。

vtbl 45 HRESULT put_RegistryKeys(SAFEARRAY* query)

収集するレジストリキーの一覧を取得または設定します。(Put)

querySAFEARRAY*in収集対象のレジストリキーの一覧を設定する。

解説(Remarks)

次のレジストリハイブからレジストリデータを収集できます。

レジストリ値を収集するには、値名までのフルパスを指定します。たとえば `\HKEY_LOCAL_MACHINE\MyKey\MyValue` のように指定します。

レジストリキー配下のすべての値を収集するには、レジストリキーまでのフルパスを指定します。たとえば \HKEY_LOCAL_MACHINE\MyKey\ のように指定します。

レジストリキーとそのサブキー配下のすべての値を収集するには、パスの最後の区切りにバックスラッシュを 2 つ使用します。たとえば \\computername\HKEY_LOCAL_MACHINE\MyKey\\ のように指定します。PLA は IConfigurationDataCollector::RegistryMaxRecursiveDepth プロパティで指定されたレベルまでレジストリデータを再帰的に収集します。

リモートコンピューターからレジストリ情報を収集するには、レジストリパスの先頭にコンピューター名を含めます。たとえば \\computername\HKEY_LOCAL_MACHINE\MyKey\MyValue のように指定します。

vtbl 46 HRESULT get_RegistryMaxRecursiveDepth(DWORD* depth)

レジストリ値を再帰的に収集するサブキーの最大数を取得または設定します。(Get)

depthDWORD*out現在のレジストリ収集時の最大再帰深さを受け取るポインタである。
vtbl 47 HRESULT put_RegistryMaxRecursiveDepth(DWORD depth)

レジストリ値を再帰的に収集するサブキーの最大数を取得または設定します。(Put)

depthDWORDinレジストリ収集時の最大再帰深さを設定する。
vtbl 48 HRESULT get_SystemStateFile(LPWSTR* FileName)

保存されたシステム状態を格納するファイルの名前を取得または設定します。(Get)

FileNameLPWSTR*out現在のシステム状態ファイル名を受け取るポインタである。

解説(Remarks)

ファイル名にはパスを含めないでください。ファイルへのパスは IDataCollectorSet::RootPath プロパティと IDataCollectorSet::Subdirectory プロパティによって決まります。

ファイルの名前を指定しない場合、システム状態は取得されません。

この状態情報は Circular Kernel Context Logger のスナップショットです。このコンテキストロガーはコンピューターの現在の状態のスナップショットを提供します。このファイルにはカーネルイベントが含まれます。TraceRpt.exe ツールを使用してイベントをデコードできます。

vtbl 49 HRESULT put_SystemStateFile(LPWSTR FileName)

保存されたシステム状態を格納するファイルの名前を取得または設定します。(Put)

FileNameLPWSTRinシステム状態ファイル名を設定する。

解説(Remarks)

ファイル名にはパスを含めないでください。ファイルへのパスは IDataCollectorSet::RootPath プロパティと IDataCollectorSet::Subdirectory プロパティによって決まります。

ファイルの名前を指定しない場合、システム状態は取得されません。

この状態情報は Circular Kernel Context Logger のスナップショットです。このコンテキストロガーはコンピューターの現在の状態のスナップショットを提供します。このファイルにはカーネルイベントが含まれます。TraceRpt.exe ツールを使用してイベントをデコードできます。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IConfigurationDataCollector "{03837514-098B-11D8-9414-505054503030}"
#usecom global IConfigurationDataCollector IID_IConfigurationDataCollector "{}"
#comfunc global IConfigurationDataCollector_get_FileMaxCount               32 var
#comfunc global IConfigurationDataCollector_put_FileMaxCount               33 int
#comfunc global IConfigurationDataCollector_get_FileMaxRecursiveDepth      34 var
#comfunc global IConfigurationDataCollector_put_FileMaxRecursiveDepth      35 int
#comfunc global IConfigurationDataCollector_get_FileMaxTotalSize           36 var
#comfunc global IConfigurationDataCollector_put_FileMaxTotalSize           37 int
#comfunc global IConfigurationDataCollector_get_Files                      38 var
#comfunc global IConfigurationDataCollector_put_Files                      39 var
#comfunc global IConfigurationDataCollector_get_ManagementQueries          40 var
#comfunc global IConfigurationDataCollector_put_ManagementQueries          41 var
#comfunc global IConfigurationDataCollector_get_QueryNetworkAdapters       42 var
#comfunc global IConfigurationDataCollector_put_QueryNetworkAdapters       43 int
#comfunc global IConfigurationDataCollector_get_RegistryKeys               44 var
#comfunc global IConfigurationDataCollector_put_RegistryKeys               45 var
#comfunc global IConfigurationDataCollector_get_RegistryMaxRecursiveDepth  46 var
#comfunc global IConfigurationDataCollector_put_RegistryMaxRecursiveDepth  47 int
#comfunc global IConfigurationDataCollector_get_SystemStateFile            48 var
#comfunc global IConfigurationDataCollector_put_SystemStateFile            49 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。