eventlog.ndl revision da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER START
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The contents of this file are subject to the terms of the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Common Development and Distribution License (the "License").
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You may not use this file except in compliance with the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * or http://www.opensolaris.org/os/licensing.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * See the License for the specific language governing permissions
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * and limitations under the License.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * When distributing Covered Code, include this CDDL HEADER in each
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * If applicable, add the following below this CDDL HEADER, with the
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * fields enclosed by brackets "[]" replaced with your own identifying
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * information: Portions Copyright [yyyy] [name of copyright owner]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * CDDL HEADER END
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Copyright 2007 Sun Microsystems, Inc. All rights reserved.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Use is subject to license terms.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#ifndef _MLSVC_LOGR_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define _MLSVC_LOGR_NDL_
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#pragma ident "%Z%%M% %I% %E% SMI"
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * Event log RPC (EVENTLOG) interface definition.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw *
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#include "ndrtypes.ndl"
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_OPNUM_EventLogClose 0x02
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_OPNUM_EventLogQueryCount 0x04
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_OPNUM_EventLogGetOldestRec 0x05
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_OPNUM_EventLogOpen 0x07
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_OPNUM_EventLogRead 0x0A
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_INFOLEN 200
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#define LOGR_RECBUFLEN 0x4000
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_handle {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD hand1;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD hand2;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD hand3[2];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw BYTE hand4[8];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct logr_handle logr_handle_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_string {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD length;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD allosize;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw LPTSTR str;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct logr_string logr_string_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_record {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD Length1; // Length of full record
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD Reserved; // Used by the service
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD RecordNumber; // Absolute record number
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD TimeGenerated; // Seconds since 1-1-1970
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD TimeWritten; // Seconds since 1-1-1970
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD EventID;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD EventType;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD NumStrings;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD EventCategory;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw WORD ReservedFlags; // For use with paired events (auditing)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD ClosingRecordNumber; // For use with paired events (auditing)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD StringOffset; // Offset from beginning of record
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD UserSidLength;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD UserSidOffset;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD DataLength;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD DataOffset;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw //
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // Then follow:
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw //
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // WCHAR SourceName[] null terminated
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // WCHAR Computername[] null terminated
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // SID UserSid
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // WCHAR Strings[]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // BYTE Data[]
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // CHAR Pad[] to DWORD
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw // DWORD Length; must be appear
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw BYTE info[LOGR_INFOLEN];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD Length2;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef struct logr_record logr_record_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * LOGR_OPNUM_EventLogClose
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(LOGR_OPNUM_EventLogClose)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_EventLogClose {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN logr_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT logr_handle_t result_handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * LOGR_OPNUM_EventLogQueryCount
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(LOGR_OPNUM_EventLogQueryCount)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_EventLogQueryCount {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN logr_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD rec_num;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * LOGR_OPNUM_EventLogGetOldestRec
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(LOGR_OPNUM_EventLogGetOldestRec)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_EventLogGetOldestRec {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN logr_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD oldest_rec;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * LOGR_OPNUM_EventLogOpen
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(LOGR_OPNUM_EventLogOpen)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_EventLogOpen {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD *whatever;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN logr_string_t log_name;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD unknown1;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD unknown2;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD unknown3;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT logr_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * LOGR_OPNUM_EventLogRead
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwunion logr_read_u {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(1024) BYTE rec[1024];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DEFAULT BYTE recs[LOGR_RECBUFLEN];
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_read_info {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw DWORD nbytes_to_read;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw SWITCH(nbytes_to_read)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw union logr_read_u ru;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwOPERATION(LOGR_OPNUM_EventLogRead)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwstruct logr_EventLogRead {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN logr_handle_t handle;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD read_flags;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw IN DWORD rec_offset;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw INOUT DWORD nbytes_to_read;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwSWITCH (nbytes_to_read)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT union logr_read_u ru;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD sent_size;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD unknown;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw OUT DWORD status;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw/*
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw * The EVENTLOG interface definition.
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw ***********************************************************************
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw */
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwINTERFACE(0)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwunion logr_interface {
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(LOGR_OPNUM_EventLogClose)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct logr_EventLogClose EventLogClose;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(LOGR_OPNUM_EventLogQueryCount)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct logr_EventLogQueryCount EventLogQueryCount;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(LOGR_OPNUM_EventLogGetOldestRec)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct logr_EventLogGetOldestRec EventLogGetOldestRec;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(LOGR_OPNUM_EventLogOpen)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct logr_EventLogOpen EventLogOpen;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw CASE(LOGR_OPNUM_EventLogRead)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw struct logr_EventLogRead EventLogRead;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw};
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwtypedef union logr_interface logr_interface_t;
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amwEXTERNTYPEINFO(logr_interface)
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw
da6c28aaf62fa55f0fdb8004aa40f88f23bf53f0amw#endif /* _MLSVC_LOGR_NDL_ */