Поделиться через


Функция WmiQueryTraceInformation (wdm.h)

Подпрограмма WmiQueryTraceInformation возвращает сведения о трассировке событий WMI.

Синтаксис

NTSTATUS WmiQueryTraceInformation(
  [in]            TRACE_INFORMATION_CLASS TraceInformationClass,
  [out]           PVOID                   TraceInformation,
  [in]            ULONG                   TraceInformationLength,
  [out, optional] PULONG                  RequiredLength,
  [in, optional]  PVOID                   Buffer
);

Параметры

[in] TraceInformationClass

Указывает перечислитель TRACE_INFORMATION_CLASS , указывающий тип сведений для возврата трассировки событий.

[out] TraceInformation

Указатель на выделенный вызывающим буфер выходных данных, в котором подпрограмма возвращает сведения трассировки событий, указанные TraceInformationClass.

[in] TraceInformationLength

Задает размер буфера TraceInformation в байтах.

[out, optional] RequiredLength

Указатель на значение, возвращаемое подпрограммой, указывающей требуемый размер в байтах буфера TraceInformation . Вызывающий объект должен задать значение RequiredLengthзначение NULL , если он не использует необходимые сведения о длине.

[in, optional] Buffer

Указатель на входные данные для конкретного запроса, которые предоставляет вызывающий объект. Если предоставленные вызывающим объектом сведения не требуются, вызывающий объект должен задать для буферазначение NULL.

Возвращаемое значение

Возвращаемый код Описание
STATUS_SUCCESS
Успех
STATUS_INFO_LENGTH_MISMATCH
Размер буфера TraceInformation не равен требуемому размеру для указанной информации трассировки событий.
STATUS_INVALID_HANDLE
Дескриптор трассировки, указанный членом HistoricalContext буфера (PWNODE_HEADER), недопустим.
STATUS_INVALID_INFO_CLASS
Недопустимый тип сведений трассировки событий.
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Имя трассировки события, предоставленное запросом для возврата дескриптора трассировки, заданного его именем, недопустимо.
STATUS_INVALID_PARAMETER_MIX
Вызывающий объект не предоставлял сведения, необходимые для указанной информации трассировки событий.
STATUS_MORE_ENTRIES
Буфер TraceInformation недостаточно велик для хранения массива всех допустимых дескрипторов трассировки событий.
STATUS_NOT_FOUND
Глобальный журнал не найден.

Замечания

Для каждого типа сведений трассировки событий, указанных TraceInformationClass, представлена следующая таблица:

  • Требования к входным данным
  • Сведения о том, что WmiQueryTraceInformation возвращается в буфере TraceInformation
Значение TraceClassInformation Требования к входным данным Возвращаемые сведения
TraceIdClass TraceInformationLength равен значению sizeof(ULONG).

Размер в байтах буфера TraceInformation больше или равен значению sizeof(ULONG).

Элемент HistoricalContext буфера (PWNODE_HEADER)указывает дескриптор трассировки событий.

*(PULONG)TraceInformation имеет идентификатор средства ведения журнала дескриптора трассировки событий.
TraceHandleClass TraceInformationLength равен значению sizeof(TRACEHANDLE).

Размер буфера TraceInformation в байтах должен быть больше или равен значению sizeof(TRACEHANDLE).

*(PULONG)Buffer имеет идентификатор средства ведения журнала.

*(PTRACEHANDLE)TraceInformation имеет дескриптор трассировки событий для указанного средства ведения журнала. Если указанный идентификатор средства ведения журнала равен нулю, возвращается дескриптор трассировки событий для средства ведения журнала ядра.
TraceEnableFlagsClass TraceInformationLength больше или равно значению sizeof(ULONG).

Размер в байтах буфера TraceInformation должен быть больше или равен значению sizeof(ULONG).

Элемент HistoricalContext буфера (PWNODE_HEADER)указывает дескриптор трассировки событий.

*(PULONG)TraceInformation имеет флажки включения, заданные для указанного дескриптора трассировки событий.
TraceEnableLevelClass TraceInformationLength устанавливается больше или равно значению sizeof(ULONG).

Размер в байтах буфера TraceInformation должен быть больше или равен значению sizeof(ULONG).

Элемент HistoricalContext буфера (PWNODE_HEADER)указывает дескриптор трассировки событий.

*(PULONG)TraceInformation имеет уровень для указанного дескриптора трассировки событий.
GlobalLoggerHandleClass TraceInformationLength равен значению sizeof(TRACEHANDLE).

Размер буфера TraceInformation в байтах должен быть больше или равен значению sizeof(TRACEHANDLE).

*(PTRACEHANDLE)TraceInformation — это дескриптор трассировки событий для глобального средства ведения журнала.
EventLoggerHandleClass Только для внутреннего использования. Только для внутреннего использования.
AllLoggerHandlesClass TraceInformationLength имеет размер, байты массива значений TRACEHANDLE.

Размер буфера TraceInformation в байтах должен быть больше или равен значению (m*sizeof(TRACEHANDLE)).

Буфер TraceInformation содержит массив дескрипторов трассировки n , где n — минимум m, количество маркеров трассировки событий, предоставленных вызывающим объектом, и количество допустимых дескрипторов трассировки событий. Подпрограмма возвращает состояние STATUS_MORE_ENTRIES, если буфер TraceInformation слишком мал для хранения всех дескрипторов трассировки.
TraceHandleByNameClass TraceInformationLength имеет значение sizeof(TRACEHANDLE).

Размер буфера TraceInformation в байтах должен быть больше или равен значению sizeof(TRACEHANDLE).

(PUNICODE_STRING)Буфер задает понятное имя трассировки в формате Юникода.

*(PTRACEHANDLE)TraceInformation — это дескриптор трассировки событий, связанный с указанным понятным именем.
 

Если вызывающий объект предоставляет указатель, отличный от NULLRequiredLength , WmiQueryTraceInformation также возвращает необходимую длину для указанной информации трассировки событий.

WmiQueryTraceInformation выполняется в IRQL вызывающего объекта.

Требования

Требование Ценность
Минимальный поддерживаемый клиент Доступно в Windows XP и более поздних версиях Windows.
целевая платформа Всеобщий
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL См. раздел "Примечания".

См. также

IoWMIWriteEvent

TRACE_INFORMATION_CLASS

WmiFireEvent

WmiTraceMessage

WmiTraceMessageVa