/* * CDDL HEADER START * * The contents of this file are subject to the terms of the * Common Development and Distribution License (the "License"). * You may not use this file except in compliance with the License. * * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE * or http://www.opensolaris.org/os/licensing. * See the License for the specific language governing permissions * and limitations under the License. * * When distributing Covered Code, include this CDDL HEADER in each * file and include the License file at usr/src/OPENSOLARIS.LICENSE. * If applicable, add the following below this CDDL HEADER, with the * fields enclosed by brackets "[]" replaced with your own identifying * information: Portions Copyright [yyyy] [name of copyright owner] * * CDDL HEADER END */ /* * Copyright 2009 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * Copyright 2013 Nexenta Systems, Inc. All rights reserved. */ #ifndef _MLSVC_LOGR_NDL_ #define _MLSVC_LOGR_NDL_ /* *********************************************************************** * * Event log RPC (EVENTLOG) interface definition. * *********************************************************************** */ #include #define LOGR_OPNUM_EventLogClose 0x02 #define LOGR_OPNUM_EventLogQueryCount 0x04 #define LOGR_OPNUM_EventLogGetOldestRec 0x05 #define LOGR_OPNUM_EventLogOpen 0x07 #define LOGR_OPNUM_EventLogRead 0x0A #define LOGR_MAXENTRYLEN 800 CONTEXT_HANDLE(logr_handle) logr_handle_t; struct logr_string { WORD length; WORD allosize; LPTSTR str; }; typedef struct logr_string logr_string_t; struct logr_record { DWORD Length1; DWORD Reserved; DWORD RecordNumber; DWORD TimeGenerated; DWORD TimeWritten; DWORD EventID; WORD EventType; WORD NumStrings; WORD EventCategory; WORD ReservedFlags; DWORD ClosingRecordNumber; DWORD StringOffset; DWORD UserSidLength; DWORD UserSidOffset; DWORD DataLength; DWORD DataOffset; BYTE info[LOGR_MAXENTRYLEN]; DWORD Length2; }; typedef struct logr_record logr_record_t; /* *********************************************************************** * LOGR_OPNUM_EventLogClose *********************************************************************** */ OPERATION(LOGR_OPNUM_EventLogClose) struct logr_EventLogClose { IN logr_handle_t handle; OUT logr_handle_t result_handle; OUT DWORD status; }; /* *********************************************************************** * LOGR_OPNUM_EventLogQueryCount *********************************************************************** */ OPERATION(LOGR_OPNUM_EventLogQueryCount) struct logr_EventLogQueryCount { IN logr_handle_t handle; OUT DWORD rec_num; OUT DWORD status; }; /* *********************************************************************** * LOGR_OPNUM_EventLogGetOldestRec *********************************************************************** */ OPERATION(LOGR_OPNUM_EventLogGetOldestRec) struct logr_EventLogGetOldestRec { IN logr_handle_t handle; OUT DWORD oldest_rec; OUT DWORD status; }; /* *********************************************************************** * LOGR_OPNUM_EventLogOpen *********************************************************************** */ OPERATION(LOGR_OPNUM_EventLogOpen) struct logr_EventLogOpen { IN DWORD *server_name; IN logr_string_t log_name; IN DWORD reg_module_name; IN DWORD major_version; IN DWORD minor_version; OUT logr_handle_t handle; OUT DWORD status; }; OPERATION(LOGR_OPNUM_EventLogRead) struct logr_EventLogRead { IN logr_handle_t handle; IN DWORD read_flags; IN DWORD rec_offset; IN DWORD nbytes_to_read; SIZE_IS(nbytes_to_read) OUT REFERENCE LPBYTE buf; OUT DWORD sent_size; OUT DWORD min_bytes_needed; OUT DWORD status; }; /* *********************************************************************** * The EVENTLOG interface definition. *********************************************************************** */ INTERFACE(0) union logr_interface { CASE(LOGR_OPNUM_EventLogClose) struct logr_EventLogClose EventLogClose; CASE(LOGR_OPNUM_EventLogQueryCount) struct logr_EventLogQueryCount EventLogQueryCount; CASE(LOGR_OPNUM_EventLogGetOldestRec) struct logr_EventLogGetOldestRec EventLogGetOldestRec; CASE(LOGR_OPNUM_EventLogOpen) struct logr_EventLogOpen EventLogOpen; CASE(LOGR_OPNUM_EventLogRead) struct logr_EventLogRead EventLogRead; }; typedef union logr_interface logr_interface_t; EXTERNTYPEINFO(logr_interface) #endif /* _MLSVC_LOGR_NDL_ */