1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
7 *
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
12 *
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
18 *
19 * CDDL HEADER END
20 */
21 /*
22 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
23 * Use is subject to license terms.
24 */
25
26 #ifndef _MLSVC_LOGR_NDL_
27 #define _MLSVC_LOGR_NDL_
28
29 /*
30 ***********************************************************************
31 *
32 * Event log RPC (EVENTLOG) interface definition.
33 *
34 ***********************************************************************
35 */
36
37 #include "ndrtypes.ndl"
38
39 #define LOGR_OPNUM_EventLogClose 0x02
40 #define LOGR_OPNUM_EventLogQueryCount 0x04
41 #define LOGR_OPNUM_EventLogGetOldestRec 0x05
42 #define LOGR_OPNUM_EventLogOpen 0x07
43 #define LOGR_OPNUM_EventLogRead 0x0A
44
45 #define LOGR_MAXENTRYLEN 800
46
47
48 CONTEXT_HANDLE(logr_handle) logr_handle_t;
49
50 struct logr_string {
51 WORD length;
52 WORD allosize;
53 LPTSTR str;
54 };
55 typedef struct logr_string logr_string_t;
56
57 struct logr_record {
58 DWORD Length1;
59 DWORD Reserved;
60 DWORD RecordNumber;
61 DWORD TimeGenerated;
62 DWORD TimeWritten;
63 DWORD EventID;
64 WORD EventType;
65 WORD NumStrings;
66 WORD EventCategory;
67 WORD ReservedFlags;
68 DWORD ClosingRecordNumber;
69 DWORD StringOffset;
70 DWORD UserSidLength;
71 DWORD UserSidOffset;
72 DWORD DataLength;
73 DWORD DataOffset;
74 BYTE info[LOGR_MAXENTRYLEN];
75 DWORD Length2;
76 };
77 typedef struct logr_record logr_record_t;
78
79 /*
80 ***********************************************************************
81 * LOGR_OPNUM_EventLogClose
82 ***********************************************************************
83 */
84 OPERATION(LOGR_OPNUM_EventLogClose)
85 struct logr_EventLogClose {
86 IN logr_handle_t handle;
87 OUT logr_handle_t result_handle;
88 OUT DWORD status;
89 };
90
91 /*
92 ***********************************************************************
93 * LOGR_OPNUM_EventLogQueryCount
94 ***********************************************************************
95 */
96 OPERATION(LOGR_OPNUM_EventLogQueryCount)
97 struct logr_EventLogQueryCount {
98 IN logr_handle_t handle;
99 OUT DWORD rec_num;
100 OUT DWORD status;
101 };
102
103 /*
104 ***********************************************************************
105 * LOGR_OPNUM_EventLogGetOldestRec
106 ***********************************************************************
107 */
108 OPERATION(LOGR_OPNUM_EventLogGetOldestRec)
109 struct logr_EventLogGetOldestRec {
110 IN logr_handle_t handle;
111 OUT DWORD oldest_rec;
112 OUT DWORD status;
113 };
114
115 /*
116 ***********************************************************************
117 * LOGR_OPNUM_EventLogOpen
118 ***********************************************************************
119 */
120 OPERATION(LOGR_OPNUM_EventLogOpen)
121 struct logr_EventLogOpen {
122 IN DWORD *server_name;
123 IN logr_string_t log_name;
124 IN DWORD reg_module_name;
125 IN DWORD major_version;
126 IN DWORD minor_version;
127 OUT logr_handle_t handle;
128 OUT DWORD status;
129 };
130
131 OPERATION(LOGR_OPNUM_EventLogRead)
132 struct logr_EventLogRead {
133 IN logr_handle_t handle;
134 IN DWORD read_flags;
135 IN DWORD rec_offset;
136 IN DWORD nbytes_to_read;
137 SIZE_IS(nbytes_to_read)
138 OUT REFERENCE LPBYTE buf;
139 OUT DWORD sent_size;
140 OUT DWORD min_bytes_needed;
141 OUT DWORD status;
142 };
143
144 /*
145 ***********************************************************************
146 * The EVENTLOG interface definition.
147 ***********************************************************************
148 */
149 INTERFACE(0)
150 union logr_interface {
151 CASE(LOGR_OPNUM_EventLogClose)
152 struct logr_EventLogClose EventLogClose;
153 CASE(LOGR_OPNUM_EventLogQueryCount)
154 struct logr_EventLogQueryCount EventLogQueryCount;
155 CASE(LOGR_OPNUM_EventLogGetOldestRec)
156 struct logr_EventLogGetOldestRec EventLogGetOldestRec;
157 CASE(LOGR_OPNUM_EventLogOpen)
158 struct logr_EventLogOpen EventLogOpen;
159 CASE(LOGR_OPNUM_EventLogRead)
160 struct logr_EventLogRead EventLogRead;
161 };
162 typedef union logr_interface logr_interface_t;
163 EXTERNTYPEINFO(logr_interface)
164
165 #endif /* _MLSVC_LOGR_NDL_ */