All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sun.jna.platform.win32.Wevtapi Maven / Gradle / Ivy

There is a newer version: 5.15.0
Show newest version
/* Copyright (c) 2016 Minoru Sakamoto, All Rights Reserved
 *
 * The contents of this file is dual-licensed under 2
 * alternative Open Source/Free licenses: LGPL 2.1 or later and
 * Apache License 2.0. (starting with JNA version 4.0.0).
 *
 * You can freely decide which license you want to apply to
 * the project.
 *
 * You may obtain a copy of the LGPL License at:
 *
 * http://www.gnu.org/licenses/licenses.html
 *
 * A copy is also included in the downloadable source code package
 * containing JNA, in file "LGPL2.1".
 *
 * You may obtain a copy of the Apache License at:
 *
 * http://www.apache.org/licenses/
 *
 * A copy is also included in the downloadable source code package
 * containing JNA, in file "AL2.0".
 */
package com.sun.jna.platform.win32;

import com.sun.jna.Callback;
import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.platform.win32.Winevt.EVT_HANDLE;
import com.sun.jna.platform.win32.Winevt.EVT_VARIANT;
import com.sun.jna.ptr.IntByReference;
import com.sun.jna.win32.StdCallLibrary;
import com.sun.jna.win32.W32APIOptions;

/**
 * wevtapi.dll Interface
 *
 * @author Minoru Sakamoto
 */
public interface Wevtapi extends StdCallLibrary {
    Wevtapi INSTANCE = (Wevtapi) Native.load("wevtapi", Wevtapi.class, W32APIOptions.UNICODE_OPTIONS);

    /**
     * Establishes a connection to a remote computer that you can use when calling the other Windows Event Log functions.
     * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385462(v=vs.85).aspx
     *
     * @param LoginClass [in] The connection method to use to connect to the remote computer. For possible values,
     *                   see the {@link Winevt.EVT_LOGIN_CLASS} enumeration.
     * @param Login      [in] A EVT_RPC_LOGIN structure that identifies the remote computer that you want to connect
     *                   to, the user's credentials, and the type of authentication to use when connecting.
     * @param Timeout    [in] Reserved. Must be zero.
     * @param Flags      [in]Reserved. Must be zero.
     * @return If successful, the function returns a session handle that you can use to access event log information
     * on the remote computer; otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get
     * the error code.
     */
    EVT_HANDLE EvtOpenSession(int LoginClass, Winevt.EVT_RPC_LOGIN Login, int Timeout, int Flags);

    /**
     * Closes an open handle.
     * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385344(v=vs.85).aspx
     *
     * @param Object [in] An open event handle to close.
     * @return True The function succeeded, False The function failed. To get the error code,
     * call the {@link Kernel32#GetLastError} function.
     */
    boolean EvtClose(EVT_HANDLE Object);

    /**
     * Cancels all pending operations on a handle.
     * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385335(v=vs.85).aspx
     *
     * @param Object The handle whose operation you want to cancel. You can cancel the following operations:
     *               
    *
  • {@link Wevtapi#EvtClearLog}
  • *
  • {@link Wevtapi#EvtExportLog}
  • *
  • {@link Wevtapi#EvtNext}
  • *
  • {@link Wevtapi#EvtQuery}
  • *
  • {@link Wevtapi#EvtSeek}
  • *
  • {@link Wevtapi#EvtSubscribe}
  • *
* To cancel the {@link Wevtapi#EvtClearLog}, {@link Wevtapi#EvtExportLog}, {@link Wevtapi#EvtQuery}, * and EvtSubscribe operations, you must pass the session handle. To specify the default * session (local session), set this parameter to NULL. * @return True The function succeeded, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtCancel(EVT_HANDLE Object); /** * Gets a text message that contains the extended error information for the current error. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385380(v=vs.85).aspx * * @param BufferSize [in] The size of the Buffer buffer, in characters. * @param Buffer [in] A caller-allocated string buffer that will receive the extended error information. * You can set this parameter to NULL to determine the required buffer size. * @param BufferUsed [out] The size, in characters, of the caller-allocated buffer that the function used or * the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return The return value is ERROR_SUCCESS if the call succeeded; otherwise, a Win32 error code. */ int EvtGetExtendedStatus(int BufferSize, char[] Buffer, IntByReference BufferUsed); /** * Runs a query to retrieve events from a channel or log file that match the specified query criteria. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385466(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL to query for events on the local computer. * @param Path [in] The name of the channel or the full path to a log file that contains the events that * you want to query. You can specify an .evt, .evtx, or.etl log file. The path is required * if the Query parameter contains an XPath query; the path is ignored if the Query parameter * contains a structured XML query and the query specifies the path. * @param Query [in] A query that specifies the types of events that you want to retrieve. You can specify * an XPath 1.0 query or structured XML query. If your XPath contains more than 20 expressions, * use a structured XML query. To receive all events, set this parameter to NULL or "*". * @param Flags [in] One or more flags that specify the order that you want to receive the events and * whether you are querying against a channel or log file. For possible values, * see the {@link Winevt.EVT_QUERY_FLAGS} enumeration. * @return A handle to the query results if successful; otherwise, NULL. If the function returns NULL, * call the {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtQuery(EVT_HANDLE Session, String Path, String Query, int Flags); /** * Gets the next event from the query or subscription results. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385405(v=vs.85).aspx * * @param ResultSet [in] The handle to a query or subscription result set that * the {@link Wevtapi#EvtQuery} function or the {@link Wevtapi#EvtSubscribe} function returns. * @param EventArraySize [in] The number of elements in the EventArray array. The function will try to retrieve * this number of elements from the result set. * @param EventArray [in] A pointer to an array of handles that will be set to the handles to the events from * the result set. * @param Timeout [in] The number of milliseconds that you are willing to wait for a result. * Set to INFINITE to indicate no time-out value. If the time-out expires, the last error is * set to ERROR_TIMEOUT. * @param Flags [in] Reserved. Must be zero. * @param Returned [out] The number of handles in the array that are set. * @return True The function succeeded, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtNext(EVT_HANDLE ResultSet, int EventArraySize, EVT_HANDLE[] EventArray, int Timeout, int Flags, IntByReference Returned); /** * Seeks to a specific event in a query result set. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385481(v=vs.85).aspx * * @param ResultSet [in] The handle to a query result set that * the {@link Wevtapi#EvtQuery} function returns. * @param Position [in] The zero-based offset to an event in the result set. The flag that you specify * in the Flags parameter indicates the beginning relative position in the result set from * which to seek. For example, you can seek from the beginning of the results or from the end of * the results. Set to 0 to move to the relative position specified by the flag. * @param Bookmark [in] A handle to a bookmark that the {@link Wevtapi#EvtCreateBookmark}function returns. * The bookmark identifies an event in the result set to which you want to seek. * Set this parameter only if the Flags parameter has the EvtSeekRelativeToBookmark flag set. * @param Timeout [in] Reserved. Must be zero. * @param Flags [in] One or more flags that indicate the relative position in the result set from which to seek. * For possible values, see the {@link Winevt.EVT_SEEK_FLAGS} enumeration. * @return True The function was successful, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtSeek(EVT_HANDLE ResultSet, long Position, EVT_HANDLE Bookmark, int Timeout, int Flags); /** * Creates a subscription that will receive current and future events from a channel or log file * that match the specified query criteria. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385487(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL to subscribe to events on the local computer. * @param SignalEvent [in] The handle to an event object that the service will signal when new events are * available that match your query criteria. This parameter must be NULL if the Callback * parameter is not NULL. * @param ChannelPath [in] The name of the Admin or Operational channel that contains the events that you want to * subscribe to (you cannot subscribe to Analytic or Debug channels). The path is required * if the Query parameter contains an XPath query; the path is ignored if the Query parameter * contains a structured XML query. * @param Query [in] A query that specifies the types of events that you want the subscription service to * return. You can specify an XPath 1.0 query or structured XML query. If your XPath contains * more than 20 expressions, use a structured XML query. To receive all events, set this * parameter to NULL or "*". * @param Bookmark [in] A handle to a bookmark that identifies the starting point for the subscription. To get * a bookmark handle, call the {@link Wevtapi#EvtCreateBookmark} function. You must set * this parameter if the Flags parameter contains the EvtSubscribeStartAfterBookmark flag; * otherwise, NULL. * @param Context [in] A caller-defined context value that the subscription service will pass to the specified * callback each time it delivers an event. * @param Callback [in] Pointer to your EVT_SUBSCRIBE_CALLBACK callback function that will receive * the subscription events. This parameter must be NULL if the SignalEvent parameter is not NULL. * @param Flags [in] One or more flags that specify when to start subscribing to events. For example, if you * specify {@link Winevt.EVT_SUBSCRIBE_FLAGS#EvtSubscribeStartAtOldestRecord}, the service will * retrieve all current and future events that match your query criteria; however, if you specify * {@link Winevt.EVT_SUBSCRIBE_FLAGS#EvtSubscribeToFutureEvents}, the service returns only * future events that match your query criteria. For possible values,see * the {@link Winevt.EVT_SUBSCRIBE_FLAGS} enumeration. * @return A handle to the subscription if successful; otherwise, NULL. If the function returns NULL, * call the {@link Kernel32#GetLastError} function to get the error code. * You must call the EvtClose function with the subscription handle when done. */ EVT_HANDLE EvtSubscribe(EVT_HANDLE Session, EVT_HANDLE SignalEvent, String ChannelPath, String Query, EVT_HANDLE Bookmark, Pointer Context, Callback Callback, int Flags); /** * Creates a context that specifies the information in the event that you want to render. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385352(v=vs.85).aspx * * @param ValuePathsCount [in] The number of XPath expressions in the ValuePaths parameter. * @param ValuePaths [in] An array of XPath expressions that uniquely identify a node or attribute in * the event that you want to render. The expressions must not contain the OR or AND operator. * Set to NULL if the {@link Winevt.EVT_RENDER_CONTEXT_FLAGS#EvtRenderContextValues} context * flag is not set in the Flags parameter. * @param Flags [in] One or more flags that identify the information in the event that you want to render. * For example, the system information, user information, or specific values. * For possible values, see the {@link Winevt.EVT_RENDER_CONTEXT_FLAGS} enumeration. * @return A context handle that you use when calling the {@link Wevtapi#EvtRender}function to render the contents * of an event; otherwise, NULL. If NULL, call the {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtCreateRenderContext(int ValuePathsCount, String[] ValuePaths, int Flags); /** * Renders an XML fragment based on the rendering context that you specify. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385471(v=vs.85).aspx * * @param Context [in] A handle to the rendering context that the {@link Wevtapi#EvtCreateRenderContext} * function returns. This parameter must be set to NULL if the Flags parameter is set to * {@link Winevt.EVT_RENDER_FLAGS#EvtRenderEventXml} or * {@link Winevt.EVT_RENDER_FLAGS#EvtRenderBookmark}. * @param Fragment [in] A handle to an event or to a bookmark. Set this parameter to a bookmark handle * if the Flags parameter is set to {@link Winevt.EVT_RENDER_FLAGS#EvtRenderEventXml}; * otherwise, set to an event handle. * @param Flags [in] A flag that identifies what to render. For example, the entire event or specific * properties of the event. For possible values,see the {@link Winevt.EVT_RENDER_FLAGS} * enumeration. * @param BufferSize [in] The size of the Buffer buffer, in bytes. * @param Buffer [in] A caller-allocated buffer that will receive the rendered output. The contents is * a null-terminated Unicode string if the Flags parameter is set to * {@link Winevt.EVT_RENDER_FLAGS#EvtRenderEventXml} or * {@link Winevt.EVT_RENDER_FLAGS#EvtRenderBookmark}. Otherwise, if Flags is set to * {@link Winevt.EVT_RENDER_FLAGS#EvtRenderEventValues}, the buffer * contains an array of EVT_VARIANT structures; one for each property specified by * the rendering context. The PropertyCount parameter contains the number of elements * in the array. * @param BufferUsed [out] The size, in bytes, of the caller-allocated buffer that the function used or * the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @param PropertyCount [out] The number of the properties in the Buffer parameter if the Flags parameter is set * to {@link Winevt.EVT_RENDER_FLAGS#EvtRenderEventValues}; otherwise, zero. * @return True The function was successful, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtRender(EVT_HANDLE Context, EVT_HANDLE Fragment, int Flags, int BufferSize, Pointer Buffer, IntByReference BufferUsed, IntByReference PropertyCount); /** * Formats a message string. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385359(v=vs.85).aspx * * @param PublisherMetadata [in] A handle to the provider's metadata that * the {@link Wevtapi#EvtOpenPublisherMetadata} function returns. The handle acts as * a formatting context for the event or message identifier. *

* You can set this parameter to NULL if the Windows Event Collector service forwarded * the event. Forwarded events include a RenderingInfo section that contains the rendered * message strings. You can also set this parameter to NULL if the event property that * you are formatting is defined in the Winmeta.xml file (for example, if level is set * to win:Error). In the latter case, the service uses the Winmeta provider as * the formatting context and will format only those message strings that you reference * in your event that are defined in the Winmeta.xml file. * @param Event [in] A handle to an event. The Flags parameter specifies the message string in * the event that you want to format. This parameter must be NULL if the Flags parameter * is set to EvtFormatMessageId. * @param MessageId [in] The resource identifier of the message string that you want to format. * To get the resource identifier for a message string, call * the {@link Wevtapi#EvtGetPublisherMetadataProperty} function. Set this parameter only * if the Flags parameter is set to EvtFormatMessageId. * @param ValueCount [in] The number of values in the Values parameter. * @param Values [in] An array of insertion values to use when formatting the event's message string. * Typically, you set this parameter to NULL and the function gets the insertion values * from the event data itself. You would use this parameter to override the default * behavior and supply the insertion values to use. For example, you might use this * parameter if you wanted to resolve a SID to a principal name before inserting the value. *

* To override the insertion values, the Flags parameter must be set to * {@link Winevt.EVT_FORMAT_MESSAGE_FLAGS#EvtFormatMessageEvent}, * {@link Winevt.EVT_FORMAT_MESSAGE_FLAGS#EvtFormatMessageXml}, or * {@link Winevt.EVT_FORMAT_MESSAGE_FLAGS#EvtFormatMessageId}, If Flags is set to * {@link Winevt.EVT_FORMAT_MESSAGE_FLAGS#EvtFormatMessageId}, the resource identifier * must identify the event's message string. * @param Flags [in] A flag that specifies the message string in the event to format. For possible * values, see the {@link Winevt.EVT_FORMAT_MESSAGE_FLAGS} enumeration. * @param BufferSize [in] The size of the Buffer buffer, in characters. * @param Buffer [in] A caller-allocated buffer that will receive the formatted message string. * You can set this parameter to NULL to determine the required buffer size. * @param BufferUsed [out] The size, in characters of the caller-allocated buffer that the function used * or the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return True The function was successful, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtFormatMessage(EVT_HANDLE PublisherMetadata, EVT_HANDLE Event, int MessageId, int ValueCount, EVT_VARIANT[] Values, int Flags, int BufferSize, char[] Buffer, IntByReference BufferUsed); /** * Gets a handle to a channel or log file that you can then use to get information about the channel or log file. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385447(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL to open a channel or log on the local computer. * @param Path [in] The name of the channel or the full path to the exported log file. * @param Flags [in] A flag that determines whether the Path parameter points to a log file or channel. * For possible values, see the {@link Winevt.EVT_OPEN_LOG_FLAGS} enumeration. * @return If successful, the function returns a handle to the file or channel; * otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtOpenLog(EVT_HANDLE Session, String Path, int Flags); /** * Gets information about a channel or log file. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385385(v=vs.85).aspx * * @param Log [in] A handle to the channel or log file that the {@link Wevtapi#EvtOpenLog} * function returns. * @param PropertyId [in] The identifier of the property to retrieve. For a list of property * identifiers, see the {@link Winevt.EVT_LOG_PROPERTY_ID} enumeration. * @param PropertyValueBufferSize [in] The size of the PropertyValueBuffer buffer, in bytes. * @param PropertyValueBuffer [in] A caller-allocated buffer that will receive the property value. The buffer * contains an EVT_VARIANT object. You can set this parameter to NULL to determine * the required buffer size. * @param PropertyValueBufferUsed [out] The size, in bytes, of the caller-allocated buffer that * the function used or the required buffer size if the function fails * with ERROR_INSUFFICIENT_BUFFER. * @return True The function was successful, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtGetLogInfo(EVT_HANDLE Log, int PropertyId, int PropertyValueBufferSize, Pointer PropertyValueBuffer, IntByReference PropertyValueBufferUsed); /** * Removes all events from the specified channel and writes them to the target log file. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385340(v=vs.85).aspx * * @param Session [in, optional] A remote session handle that the {@link Wevtapi#EvtOpenSession} function * returns. Set to NULL for local channels. * @param ChannelPath [in] The name of the channel to clear. * @param TargetFilePath [in, optional] The full path to the target log file that will receive the events. * Set to NULL to clear the log file and not save the events. * @param Flags [in] Reserved. Must be zero. * @return True The function was successful, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtClearLog(EVT_HANDLE Session, String ChannelPath, String TargetFilePath, int Flags); /** * Copies events from the specified channel or log file and writes them to the target log file. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385355(v=vs.85).aspx * * @param Session [in, optional] A remote session handle that the {@link Wevtapi#EvtOpenSession} function * returns. Set to NULL for local channels. * @param Path [in] The name of the channel or the full path to a log file that contains the events that * you want to export. If the Query parameter contains an XPath query, you must specify * the channel or log file. If the Flags parameter contains * {@link Winevt.EVT_EXPORTLOG_FLAGS#EvtExportLogFilePath}, you must specify the log file. * If the Query parameter contains a structured XML query, the channel or path that you * specify here must match the channel or path in the query. If the Flags parameter contains * {@link Winevt.EVT_EXPORTLOG_FLAGS#EvtExportLogChannelPath}, this parameter can be NULL * if the query is a structured XML query that specifies the channel. * @param Query [in] A query that specifies the types of events that you want to export. You can specify * an XPath 1.0 query or structured XML query. If your XPath contains more than 20 expressions, * use a structured XML query. To export all events, set this parameter to NULL or "*". * @param TargetFilePath [in] The full path to the target log file that will receive the events. * The target log file must not exist. * @param Flags [in] Flags that indicate whether the events come from a channel or log file. For possible * values, see the {@link Winevt.EVT_EXPORTLOG_FLAGS#EvtExportLogChannelPath} enumeration. * @return True The function was successful, False The function failed. To get the error code, call * the {@link Kernel32#GetLastError} function. */ boolean EvtExportLog(EVT_HANDLE Session, String Path, String Query, String TargetFilePath, int Flags); /** * Adds localized strings to the events in the specified log file. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385232(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL for local channels. * @param LogFilePath [in] The full path to the exported log file that contains the events to localize. * @param Locale [in] The locale to use to localize the strings that the service adds to the events in * the log file. If zero, the function uses the calling thread's locale. If the provider's * resources does not contain the locale, the string is empty. * @param Flags [in] Reserved. Must be zero. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtArchiveExportedLog(EVT_HANDLE Session, String LogFilePath, int Locale, int Flags); /** * Gets a handle that you use to enumerate the list of channels that are registered on the computer. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385437(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL to enumerate the channels on the local computer. * @param Flags [in] Reserved. Must be zero. * @return If successful, the function returns a handle to the list of channel names that are registered on * the computer; otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtOpenChannelEnum(EVT_HANDLE Session, int Flags); /** * Gets a channel name from the enumerator. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385412(v=vs.85).aspx * * @param ChannelEnum [in] A handle to the enumerator that the {@link Wevtapi#EvtOpenChannelEnum} * function returns. * @param ChannelPathBufferSize [in] The size of the ChannelPathBuffer buffer, in characters. * @param ChannelPathBuffer [in] A caller-allocated buffer that will receive the name of the channel. * You can set this parameter to NULL to determine the required buffer size. * @param ChannelPathBufferUsed [out] The size, in characters, of the caller-allocated buffer that the function * used or the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtNextChannelPath(EVT_HANDLE ChannelEnum, int ChannelPathBufferSize, char[] ChannelPathBuffer, IntByReference ChannelPathBufferUsed); /** * Gets a handle that you use to read or modify a channel's configuration property. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385430(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL to access a channel on the local computer. * @param ChannelPath [in] The name of the channel to access. * @param Flags [in] Reserved. Must be zero. * @return If successful, the function returns a handle to the channel's configuration; * otherwise, NULL. If NULL, call GetLastError function to get the error code. */ EVT_HANDLE EvtOpenChannelConfig(EVT_HANDLE Session, String ChannelPath, int Flags); /** * Saves the changes made to a channel's configuration. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385477(v=vs.85).aspx * * @param ChannelConfig [in] A handle to the channel's configuration properties that * the {@link Wevtapi#EvtOpenChannelConfig} function returns. * @param Flags [in] Reserved. Must be zero. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtSaveChannelConfig(EVT_HANDLE ChannelConfig, int Flags); /** * Sets the specified configuration property of a channel. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385484(v=vs.85).aspx * * @param ChannelConfig [in] A handle to the channel's configuration properties that * the {@link Wevtapi#EvtOpenChannelConfig} function returns. * @param PropertyId [in] The identifier of the channel property to set. For a list of property identifiers, * see the {@link Winevt.EVT_CHANNEL_CONFIG_PROPERTY_ID} enumeration. * @param Flags [in] Reserved. Must be zero. * @param PropertyValue [in] The property value to set. * A caller-allocated buffer that contains the new configuration property value. * The buffer contains an EVT_VARIANT object. Be sure to set the configuration value and * variant type. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtSetChannelConfigProperty(EVT_HANDLE ChannelConfig, int PropertyId, int Flags, EVT_VARIANT PropertyValue); /** * Gets the specified channel configuration property. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385362(v=vs.85).aspx * * @param ChannelConfig [in] A handle to the channel's configuration properties that * the {@link Wevtapi#EvtOpenChannelConfig} function returns. * @param PropertyId [in] The identifier of the channel property to retrieve. For a list of property * identifiers, see the {@link Winevt.EVT_CHANNEL_CONFIG_PROPERTY_ID} enumeration. * @param Flags [in] Reserved. Must be zero. * @param PropertyValueBufferSize [in] The size of the PropertyValueBuffer buffer, in bytes. * @param PropertyValueBuffer [in] A caller-allocated buffer that will receive the configuration property. * The buffer contains an EVT_VARIANT object. You can set this parameter to NULL * to determine the required buffer size. * @param PropertyValueBufferUsed [out] The size, in bytes, of the caller-allocated buffer that the function * used or the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetChannelConfigProperty(EVT_HANDLE ChannelConfig, int PropertyId, int Flags, int PropertyValueBufferSize, Pointer PropertyValueBuffer, IntByReference PropertyValueBufferUsed); /** * Gets a handle that you use to enumerate the list of registered providers on the computer. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385451(v=vs.85).aspx * * @param Session [in] A remote session handle that the {@link Wevtapi#EvtOpenSession} function returns. * Set to NULL to enumerate the registered providers on the local computer. * @param Flags [in] Reserved. Must be zero. * @return If successful, the function returns a handle to the list of registered providers; * otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtOpenPublisherEnum(EVT_HANDLE Session, int Flags); /** * Gets the identifier of a provider from the enumerator. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385425(v=vs.85).aspx * * @param PublisherEnum [in] A handle to the registered providers enumerator that * the {@link Wevtapi#EvtOpenPublisherEnum} function returns. * @param PublisherIdBufferSize [in] The size of the PublisherIdBuffer buffer, in characters. * @param PublisherIdBuffer [in] A caller-allocated buffer that will receive the name of the registered * provider. You can set this parameter to NULL to determine the required buffer size. * @param PublisherIdBufferUsed [out] The size, in characters, of the caller-allocated buffer that the function * used or the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return If successful, the function returns a handle to the list of registered providers; * otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ boolean EvtNextPublisherId(EVT_HANDLE PublisherEnum, int PublisherIdBufferSize, char[] PublisherIdBuffer, IntByReference PublisherIdBufferUsed); /** * Gets a handle that you use to read the specified provider's metadata. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385458(v=vs.85).aspx * * @param EvtHandleSession [in, optional] A remote session handle that the {@link Wevtapi#EvtOpenSession} * function returns. Set to NULL to get the metadata for a provider on the local computer. * @param PublisherIdentity [in] The name of the provider. To enumerate the names of the providers registered on * the computer, call the {@link Wevtapi#EvtOpenPublisherEnum} function. * @param LogFilePath [in, optional] The full path to an archived log file that contains the events that * the provider logged. An archived log file also contains the provider's metadata. Use * this parameter when the provider is not registered on the local computer. Set to NULL * when reading the metadata from a registered provider.. * @param Locale [in] The locale identifier to use when accessing the localized metadata from * the provider. To create the locale identifier, use the MAKELCID macro. Set to 0 to use * the locale identifier of the calling thread. * @param Flags [in] Reserved. Must be zero. * @return If successful, the function returns a handle to the provider's metadata; * otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtOpenPublisherMetadata(EVT_HANDLE EvtHandleSession, String PublisherIdentity, String LogFilePath, int Locale, int Flags); /** * Gets the specified provider metadata property. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385399(v=vs.85).aspx * * @param PublisherMetadata [in] A handle to the metadata that * the {@link Wevtapi#EvtOpenPublisherMetadata} function returns. * @param PropertyId [in] The identifier of the metadata property to retrieve. * For a list of property identifiers, see * the {@link Winevt.EVT_PUBLISHER_METADATA_PROPERTY_ID} enumeration. * @param Flags [in] Reserved. Must be zero. * @param PublisherMetadataPropertyBufferSize [in] The size of the PublisherMetadataPropertyBuffer buffer, * in bytes. * @param PublisherMetadataPropertyBuffer [in] A caller-allocated buffer that will receive the metadata * property. The buffer contains an EVT_VARIANT object. You can set this * parameter to NULL to determine the required buffer size. * @param PublisherMetadataPropertyBufferUsed [out] The size, in bytes, of the caller-allocated buffer that * the function used or the required buffer size if the function fails * with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetPublisherMetadataProperty(EVT_HANDLE PublisherMetadata, int PropertyId, int Flags, int PublisherMetadataPropertyBufferSize, Pointer PublisherMetadataPropertyBuffer, IntByReference PublisherMetadataPropertyBufferUsed); /** * Gets a handle that you use to enumerate the list of events that the provider defines. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385446(v=vs.85).aspx * * @param PublisherMetadata [in] A handle to the provider's metadata that * the {@link Wevtapi#EvtOpenPublisherMetadata} function returns. * @param Flags [in] Reserved. Must be zero. * @return If successful, the function returns a handle to the list of events that the provider defines; * otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtOpenEventMetadataEnum(EVT_HANDLE PublisherMetadata, int Flags); /** * Gets an event definition from the enumerator. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385419(v=vs.85).asp * * @param EventMetadataEnum [in] A handle to the event definition enumerator that * the {@link Wevtapi#EvtOpenEventMetadataEnum} function returns. * @param Flags [in] Reserved. Must be zero. * @return If successful, the function returns a handle to the event's metadata; * otherwise, NULL. If NULL, call {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtNextEventMetadata(EVT_HANDLE EventMetadataEnum, int Flags); /** * Gets the specified event metadata property. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385376(v=vs.85).aspx * * @param EventMetadata [in] A handle to the event metadata that * the {@link Wevtapi#EvtNextEventMetadata} function returns. * @param PropertyId [in] The identifier of the metadata property to retrieve. For a list of * property identifiers, see * the {@link Winevt.EVT_EVENT_METADATA_PROPERTY_ID} enumeration. * @param Flags [in] Reserved. Must be zero. * @param EventMetadataPropertyBufferSize [in] The size of the EventMetadataPropertyBuffer buffer, in bytes. * @param Buffer [in] A caller-allocated buffer that will receive the metadata property. * The buffer contains an EVT_VARIANT object. You can set this parameter to * NULL to determine the required buffer size. * @param BufferUsed [out] The size, in bytes, of the caller-allocated buffer that * the function used or the required buffer size if the function fails * with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetEventMetadataProperty(EVT_HANDLE EventMetadata, int PropertyId, int Flags, int EventMetadataPropertyBufferSize, Pointer Buffer, IntByReference BufferUsed); /** * Gets the number of elements in the array of objects. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385394(v=vs.85).aspx * * @param ObjectArray [in] A handle to an array of objects that * the {@link Wevtapi#EvtGetPublisherMetadataProperty} function returns. * @param ObjectArraySize [out] The number of elements in the array. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetObjectArraySize(Pointer ObjectArray, IntByReference ObjectArraySize); /** * Gets a provider metadata property from the specified object in the array. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385389(v=vs.85).aspx * * @param ObjectArray [in] A handle to an array of objects that * the {@link Wevtapi#EvtGetPublisherMetadataProperty} function returns. * @param PropertyId [in] The property identifier of the metadata property that you want to get from * the specified object. For possible values, see the Remarks section of * {@link Winevt.EVT_PUBLISHER_METADATA_PROPERTY_ID}. * @param ArrayIndex [in] The zero-based index of the object in the array. * @param Flags [in] Reserved. Must be zero. * @param PropertyValueBufferSize [in] The size of the PropertyValueBuffer buffer, in bytes. * @param PropertyValueBuffer [in] A caller-allocated buffer that will receive the metadata property. * The buffer contains an EVT_VARIANT object. You can set this parameter to NULL * to determine the required buffer size. * @param PropertyValueBufferUsed [in] The size, in bytes, of the caller-allocated buffer that the function used * or the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetObjectArrayProperty(Pointer ObjectArray, int PropertyId, int ArrayIndex, int Flags, int PropertyValueBufferSize, Pointer PropertyValueBuffer, IntByReference PropertyValueBufferUsed); /** * Gets information about a query that you ran that identifies the list of channels or log files that the query * attempted to access. The function also gets a list of return codes that indicates the success or failure of each * access. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa820606(v=vs.85).aspx * * @param QueryOrSubscription [in] A handle to the query that the {@link Wevtapi#EvtQuery} or * {@link Wevtapi#EvtSubscribe} function returns. * @param PropertyId [in] The identifier of the query information to retrieve. For a list of * identifiers, see the {@link Winevt.EVT_QUERY_PROPERTY_ID} enumeration. * @param PropertyValueBufferSize [in] The size of the PropertyValueBuffer buffer, in bytes. * @param PropertyValueBuffer [in] A caller-allocated buffer that will receive the query information. * The buffer contains an EVT_VARIANT object. You can set this parameter to NULL to * determine the required buffer size. * @param PropertyValueBufferUsed [out] The size, in bytes, of the caller-allocated buffer that the * function used or the required buffer size if the function fails * with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetQueryInfo(EVT_HANDLE QueryOrSubscription, int PropertyId, int PropertyValueBufferSize, Pointer PropertyValueBuffer, IntByReference PropertyValueBufferUsed); /** * Creates a bookmark that identifies an event in a channel. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385348(v=vs.85).aspx * * @param BookmarkXml [in, optional] An XML string that contains the bookmark or NULL if creating a bookmark. * @return A handle to the bookmark if the call succeeds; * otherwise, NULL. If NULL, call the {@link Kernel32#GetLastError} function to get the error code. */ EVT_HANDLE EvtCreateBookmark(String BookmarkXml); /** * Updates the bookmark with information that identifies the specified event. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385489(v=vs.85).aspx * * @param Bookmark [in] The handle to the bookmark to be updated. The {@link Wevtapi#EvtCreateBookmark} function * returns this handle. * @param Event [in] The handle to the event to bookmark. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtUpdateBookmark(EVT_HANDLE Bookmark, EVT_HANDLE Event); /** * Gets information that identifies the structured XML query that selected the event and the channel or log file * that contained the event. * https://msdn.microsoft.com/en-us/library/windows/desktop/aa385372(v=vs.85).aspx * * @param Event [in] A handle to an event for which you want to retrieve information. * @param PropertyId [in] A flag that identifies the information to retrieve. For example, the query * identifier or the path. For possible values, * see the {@link Winevt.EVT_EVENT_PROPERTY_ID} enumeration. * @param PropertyValueBufferSize [in] The size of the PropertyValueBuffer buffer, in bytes. * @param PropertyValueBuffer [in] A caller-allocated buffer that will receive the information. The buffer * contains an EVT_VARIANT object. You can set this parameter to NULL to determine * the required buffer size. * @param PropertyValueBufferUsed [in] The size, in bytes, of the caller-allocated buffer that the function used * or the required buffer size if the function fails with ERROR_INSUFFICIENT_BUFFER. * @return True The function succeeded, False The function failed. To get the error code, * call the {@link Kernel32#GetLastError} function. */ boolean EvtGetEventInfo(EVT_HANDLE Event, int PropertyId, int PropertyValueBufferSize, Pointer PropertyValueBuffer, IntByReference PropertyValueBufferUsed); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy