イベント コレクター サブスクリプションの一覧表示
ローカル コンピューターで有効になっているイベント コレクター サブスクリプションの名前の一覧を取得できます。 EcOpenSubscriptionEnum 関数を使用すると、サブスクリプション列挙子へのハンドルを取得できます。 ハンドルが作成されると、 EcEnumNextSubscription 関数を使用して、ローカル コンピューター上のサブスクリプションが一覧表示されます。
Note
次のコード例を使用してサブスクリプションの一覧を取得するか、コマンド プロンプトで次のコマンドを入力できます。
wecutil es
次の C++ コード例は、イベント コレクター サブスクリプションを一覧表示する方法を示しています。
#include <windows.h>
#include <EvColl.h>
#include <vector>
#include <strsafe.h>
#pragma comment(lib, "wecapi.lib")
void __cdecl wmain()
{
// Lists the Event Collector subscriptions that are available
// on the local computer.
DWORD dwBufferSizeUsed, dwError = ERROR_SUCCESS;
BOOL bRetVal = true;
std::vector<WCHAR> buffer(MAX_PATH);
EC_HANDLE hEnumerator;
DWORD dwRetVal;
// Create a handle to access the subscriptions.
hEnumerator = EcOpenSubscriptionEnum(NULL);
if (hEnumerator)
{
while (bRetVal)
{
// Get the next subscription.
bRetVal = EcEnumNextSubscription(hEnumerator,
(DWORD) buffer.size(),
(LPWSTR) &buffer[0],
&dwBufferSizeUsed);
dwError = GetLastError();
// If the buffer is not large enough, resize it to accommodate the
// subscription information.
if (!bRetVal && ERROR_INSUFFICIENT_BUFFER == dwError)
{
dwError = ERROR_SUCCESS;
buffer.resize(dwBufferSizeUsed);
bRetVal = EcEnumNextSubscription(hEnumerator,
(DWORD) buffer.size(),
(LPWSTR) &buffer[0],
&dwBufferSizeUsed);
dwError = GetLastError();
}
if (!bRetVal && ERROR_NO_MORE_ITEMS == dwError)
{
dwError = ERROR_SUCCESS;
break;
}
if (bRetVal && ERROR_SUCCESS != dwError)
{
break;
}
// Output the subscription name.
wprintf(L"%s\n", (LPCWSTR) &buffer[0]);
}
}
else
{
dwRetVal = GetLastError();
LPVOID lpwszBuffer;
FormatMessageW( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
dwRetVal,
0,
(LPWSTR) &lpwszBuffer,
0,
NULL);
if (!lpwszBuffer)
{
wprintf(L"Failed to FormatMessage. Operation Error Code: %u. Error Code from FormatMessage: %u\n", dwRetVal, GetLastError());
return;
}
wprintf(L"\nFailed to Perform Operation.\nError Code: %u\nError Message: %s\n", dwRetVal, lpwszBuffer);
LocalFree(lpwszBuffer);
}
EcClose(hEnumerator);
}
関連トピック