<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=us-ascii">
<META content="MSHTML 6.00.2900.3243" name=GENERATOR></HEAD>
<BODY>
<DIV><SPAN class=192152416-11062009><FONT face=Arial color=#0000ff
size=2>Committed in 2227.</FONT></SPAN></DIV><BR>
<BLOCKQUOTE dir=ltr
style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px solid; MARGIN-RIGHT: 0px">
<DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
<HR tabIndex=-1>
<FONT face=Tahoma size=2><B>From:</B> ofw-bounces@lists.openfabrics.org
[mailto:ofw-bounces@lists.openfabrics.org] <B>On Behalf Of </B>Leonid
Keller<BR><B>Sent:</B> Monday, June 01, 2009 11:37 AM<BR><B>To:</B>
ofw@lists.openfabrics.org<BR><B>Subject:</B> [ofw][patches][ibbus] added
support to logging to System Event Log.<BR></FONT><BR></DIV>
<DIV></DIV>
<DIV><FONT face=Arial size=2><SPAN class=348243108-01062009>Added macro
CL_PRINT_TO_EVENT_LOG, sending a string to System Event
Log.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=348243108-01062009></SPAN></FONT> </DIV>
<DIV><SPAN class=348243108-01062009><FONT face=Arial size=2>
</FONT></SPAN><FONT face=Arial
size=2>CL_PRINT_TO_EVENT_LOG(_obj_,_event_id_,_msg_)<BR> <SPAN
class=348243108-01062009> </SPAN>obj - FDO of IBBUS<BR><SPAN
class=348243108-01062009> </SPAN> event_id
- EVENT_IBBUS_ANY_ERROR, EVENT_IBBUS_ANY_WARN,
EVENT_IBBUS_ANY_INFO<BR> <SPAN
class=348243108-01062009> </SPAN>msg -
(<format_string>[,p<SPAN class=348243108-01062009>a</SPAN>ram_lis<SPAN
class=348243108-01062009>t</SPAN>])</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=348243108-01062009>FDO is stored in
CA object.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=348243108-01062009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN
class=348243108-01062009></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2></FONT> </DIV>
<DIV><FONT face=Arial size=2>Index:
V:/svn/winib/trunk/core/complib/kernel/cl_log.c<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/complib/kernel/cl_log.c (revision 4394)<BR>+++
V:/svn/winib/trunk/core/complib/kernel/cl_log.c (revision 4395)<BR>@@
-29,10 +29,123 @@<BR> * $Id$<BR> */<BR> <BR>-<BR>+#include
<stdarg.h><BR> #include "complib/cl_log.h"<BR> <BR>+WCHAR
g_cl_wlog[ CL_LOG_BUF_LEN ]; <BR>+UCHAR g_cl_slog[ CL_LOG_BUF_LEN ];
<BR> <BR>+<BR>+VOID<BR>+cl_event_log_write(<BR>+ PVOID p_io_object,<BR>+ ULONG p_error_code,<BR>+ ULONG p_unique_error_code,<BR>+ ULONG p_final_status,<BR>+ PWCHAR p_insertion_string,<BR>+ ULONG p_n_data_items,<BR>+ ...<BR>+ )<BR>+/*++<BR>+<BR>+Routine
Description:<BR>+ Writes an event log entry to the event
log.<BR>+<BR>+Arguments:<BR>+<BR>+ p_io_object......... The IO object (
driver object or device object ).<BR>+ p_error_code......... The error
code.<BR>+ p_unique_error_code... A specific error
code.<BR>+ p_final_status....... The final
status.<BR>+ p_n_data_items........ Number of data
items.<BR>+ .<BR>+ . data items values<BR>+ .<BR>+<BR>+Return
Value:<BR>+<BR>+ None .<BR>+<BR>+--*/<BR>+{ /* WriteEventLogEntryStr
*/<BR>+<BR>+ /* Variable argument list */
<BR>+ va_list l_Argptr;<BR>+ /* Pointer
to an error log entry */<BR>+ PIO_ERROR_LOG_PACKET l_pErrorLogEntry;
<BR>+ /* sizeof insertion string */<BR>+ int l_Size =
(int)((p_insertion_string) ? ((wcslen(p_insertion_string) + 1) * sizeof( WCHAR
)) : 0);<BR>+ int l_PktSize
=sizeof(IO_ERROR_LOG_PACKET)+p_n_data_items*sizeof(ULONG);<BR>+ int
l_TotalSize =l_PktSize +l_Size;<BR>+<BR>+ if (p_io_object == NULL)
{<BR>+ ASSERT(p_io_object !=
NULL);<BR>+ return;<BR>+ }<BR>+<BR>+ /* Init the variable
argument list */ <BR>+ va_start(l_Argptr,
p_n_data_items);<BR>+<BR>+ /* Allocate an error log entry */
<BR>+ if (l_TotalSize >= ERROR_LOG_MAXIMUM_SIZE - 2)
<BR>+ l_TotalSize = ERROR_LOG_MAXIMUM_SIZE -
2;<BR>+ l_pErrorLogEntry =
(PIO_ERROR_LOG_PACKET)IoAllocateErrorLogEntry(<BR>+ p_io_object,
(UCHAR)l_TotalSize );<BR>+<BR>+ /* Check allocation */<BR>+ if (
l_pErrorLogEntry != NULL) <BR>+ { /* OK */<BR>+<BR>+ /* Data
item index */<BR>+ USHORT l_nDataItem ;<BR>+<BR>+ /* Set
the error log entry header
*/<BR>+ l_pErrorLogEntry->ErrorCode =
p_error_code; <BR>+ l_pErrorLogEntry->DumpDataSize =
(USHORT) (p_n_data_items*sizeof(ULONG));
<BR>+ l_pErrorLogEntry->SequenceNumber = 0;
<BR>+ l_pErrorLogEntry->MajorFunctionCode = 0;
<BR>+ l_pErrorLogEntry->IoControlCode = 0;
<BR>+ l_pErrorLogEntry->RetryCount = 0;
<BR>+ l_pErrorLogEntry->UniqueErrorValue =
p_unique_error_code;
<BR>+ l_pErrorLogEntry->FinalStatus = p_final_status;
<BR>+<BR>+ /* Insert the data items */<BR>+ for
(l_nDataItem = 0; l_nDataItem < p_n_data_items; l_nDataItem++)
<BR>+ { /* Inset a data item */<BR>+<BR>+ /*
Current data item */<BR>+ int l_CurDataItem
;<BR>+ <BR>+ /* Get next data item
*/<BR>+ l_CurDataItem = va_arg( l_Argptr,
int);<BR>+<BR>+ /* Put it into the data array
*/<BR>+ l_pErrorLogEntry->DumpData[l_nDataItem] =
l_CurDataItem ;<BR>+<BR>+ } /* Inset a data item
*/<BR>+<BR>+ /* add insertion string */<BR>+ if
(p_insertion_string) {<BR>+ char *ptr;
<BR>+ int sz = min( l_TotalSize - l_PktSize, l_Size
);<BR>+ l_pErrorLogEntry->NumberOfStrings =
1;<BR>+ l_pErrorLogEntry->StringOffset =
sizeof(IO_ERROR_LOG_PACKET) +
l_pErrorLogEntry->DumpDataSize;<BR>+ ptr =
(char*)l_pErrorLogEntry +
l_pErrorLogEntry->StringOffset;<BR>+ memcpy( ptr,
p_insertion_string, sz );<BR>+ *(WCHAR*)&ptr[sz - 2] =
(WCHAR)0;<BR>+ }<BR>+ <BR>+ /* Write the
packet
*/<BR>+ IoWriteErrorLogEntry(l_pErrorLogEntry);<BR>+<BR>+ } /*
OK */<BR>+<BR>+ /* Term the variable argument list */
<BR>+ va_end(l_Argptr);<BR>+<BR>+} /* WriteEventLogEntry
*/<BR>+<BR>+<BR> /*<BR> * The IO Object required to allocate an
event log entry is passed in<BR> * via the "name" parameter.<BR>Index:
V:/svn/winib/trunk/core/bus/kernel/bus_ev_log.mc<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/bus/kernel/bus_ev_log.mc (revision 0)<BR>+++
V:/svn/winib/trunk/core/bus/kernel/bus_ev_log.mc (revision 4395)<BR>@@
-0,0 +1,56
@@<BR>+;/*++<BR>+;=============================================================================<BR>+;Copyright
(c) 2009 Mellanox Technologies<BR>+;<BR>+;Module
Name:<BR>+;<BR>+;
bus_ev_log.mc<BR>+;<BR>+;Abstract:<BR>+;<BR>+; IB Driver
event log messages<BR>+;<BR>+;Authors:<BR>+;<BR>+; Leonid
Keller<BR>+;<BR>+;Environment:<BR>+;<BR>+; Kernel Mode
.<BR>+;<BR>+;=============================================================================<BR>+;--*/<BR>+;<BR>+MessageIdTypedef
= NTSTATUS<BR>+<BR>+SeverityNames = (<BR>+ Success =
0x0:STATUS_SEVERITY_SUCCESS<BR>+ Informational =
0x1:STATUS_SEVERITY_INFORMATIONAL<BR>+ Warning =
0x2:STATUS_SEVERITY_WARNING<BR>+ Error =
0x3:STATUS_SEVERITY_ERROR<BR>+ )<BR>+<BR>+FacilityNames =
(<BR>+ System = 0x0<BR>+ RpcRuntime =
0x2:FACILITY_RPC_RUNTIME<BR>+ RpcStubs =
0x3:FACILITY_RPC_STUBS<BR>+ Io =
0x4:FACILITY_IO_ERROR_CODE<BR>+ IBBUS =
0x9:FACILITY_IB_ERROR_CODE<BR>+ )<BR>+<BR>+<BR>+MessageId=0x0001
Facility=IBBUS Severity=Informational
SymbolicName=EVENT_IBBUS_ANY_INFO<BR>+Language=English<BR>+%2<BR>+.<BR>+<BR>+MessageId=0x0002
Facility=IBBUS Severity=Warning
SymbolicName=EVENT_IBBUS_ANY_WARN<BR>+Language=English<BR>+%2<BR>+.<BR>+<BR>+MessageId=0x0003
Facility=IBBUS Severity=Error
SymbolicName=EVENT_IBBUS_ANY_ERROR<BR>+Language=English<BR>+%2<BR>+.<BR>+<BR>Index:
V:/svn/winib/trunk/core/bus/kernel/SOURCES<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/bus/kernel/SOURCES (revision 4394)<BR>+++
V:/svn/winib/trunk/core/bus/kernel/SOURCES (revision 4395)<BR>@@ -10,16
+10,18 @@<BR> <BR> <BR> SOURCES=
ibbus.rc \<BR>+ bus_ev_log.mc \<BR> bus_driver.c \<BR> bus_pnp.c \<BR> bus_port_mgr.c \<BR> bus_iou_mgr.c<BR> <BR>-INCLUDES=..\..\..\inc;..\..\..\inc\kernel;..\..\al;..\..\al\kernel;<BR>+INCLUDES=..\..\..\inc;..\..\..\inc\kernel;..\..\al;..\..\al\kernel;..\..\bus\kernel\$O;<BR> <BR> C_DEFINES=$(C_DEFINES)
-DDRIVER -DDEPRECATE_DDK_FUNCTIONS
-DNEED_CL_OBJ<BR> <BR> TARGETLIBS= \<BR>+
$(DDK_LIB_PATH)\ntstrsafe.lib \<BR> $(TARGETPATH)\*\complib.lib
\<BR> $(TARGETPATH)\*\ibal.lib<BR> <BR>Index:
V:/svn/winib/trunk/core/bus/kernel/ibbus.rc<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/bus/kernel/ibbus.rc (revision 4394)<BR>+++
V:/svn/winib/trunk/core/bus/kernel/ibbus.rc (revision 4395)<BR>@@ -44,4
+44,6 @@<BR> #define
VER_INTERNALNAME_STR "ibbus.sys"<BR> #define
VER_ORIGINALFILENAME_STR "ibbus.sys"<BR> <BR>+#include
"bus_ev_log.rc"<BR>+<BR> #include <common.ver><BR>Index:
V:/svn/winib/trunk/core/al/kernel/al_mgr.c<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/al/kernel/al_mgr.c (revision 4394)<BR>+++
V:/svn/winib/trunk/core/al/kernel/al_mgr.c (revision 4395)<BR>@@ -257,7
+257,8
@@<BR> ib_api_status_t<BR> ib_register_ca(<BR> IN const ci_interface_t* p_ci,<BR>- IN const PDEVICE_OBJECT p_hca_dev<BR>+ IN const PDEVICE_OBJECT p_hca_dev,<BR>+ IN const PDEVICE_OBJECT p_fdo<BR> )<BR> {<BR> ib_api_status_t status;<BR>@@
-285,7 +286,7 @@<BR> }<BR> <BR> /* Construct and
initialize the CA structure. */<BR>- status = create_ci_ca(
&gp_al_mgr->obj, p_ci, p_hca_dev );<BR>+ status = create_ci_ca(
&gp_al_mgr->obj, p_ci, p_hca_dev, p_fdo );<BR> if( status !=
IB_SUCCESS )<BR> {<BR> AL_PRINT(
TRACE_LEVEL_ERROR, AL_DBG_ERROR,<BR>Index:
V:/svn/winib/trunk/core/al/kernel/SOURCES<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/al/kernel/SOURCES (revision 4394)<BR>+++
V:/svn/winib/trunk/core/al/kernel/SOURCES (revision 4395)<BR>@@ -56,12
+56,13
@@<BR> ..\ib_common.c \<BR> ..\ib_statustext.c<BR> <BR>-INCLUDES=..;..\..\..\inc;..\..\..\inc\kernel;<BR>+INCLUDES=..;..\..\..\inc;..\..\..\inc\kernel;..\..\bus\kernel\$O;<BR> <BR> C_DEFINES=$(C_DEFINES)
-DDRIVER -DDEPRECATE_DDK_FUNCTIONS
\<BR> -DEXPORT_AL_SYMBOLS<BR> <BR> TARGETLIBS=
\<BR>+ $(DDK_LIB_PATH)\ntstrsafe.lib
\<BR> $(TARGETPATH)\*\complib.lib<BR> <BR> !IFDEF
ENABLE_EVENT_TRACING<BR>Index:
V:/svn/winib/trunk/core/al/kernel/al_ci_ca.c<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/al/kernel/al_ci_ca.c (revision 4394)<BR>+++
V:/svn/winib/trunk/core/al/kernel/al_ci_ca.c (revision 4395)<BR>@@ -85,7
+85,8
@@<BR> create_ci_ca(<BR> IN al_obj_t *p_parent_obj,<BR> IN const ci_interface_t* p_ci,<BR>- IN const PDEVICE_OBJECT p_hca_dev<BR>+ IN const PDEVICE_OBJECT p_hca_dev,<BR>+ IN const PDEVICE_OBJECT p_fdo<BR> )<BR> {<BR> ib_api_status_t status;<BR>@@
-189,8 +190,10 @@<BR> return
status;<BR> }<BR> <BR>+<BR> /* store HCA device
object into CA object */<BR> p_ci_ca->h_ca->p_hca_dev =
p_hca_dev;<BR>+ p_ci_ca->h_ca->p_fdo =
p_fdo;<BR> <BR> /* Get a list of the port GUIDs on this
CI CA. */<BR> status = get_port_info( p_ci_ca );<BR>Index:
V:/svn/winib/trunk/core/al/al_ca.h<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/al/al_ca.h (revision 4394)<BR>+++
V:/svn/winib/trunk/core/al/al_ca.h (revision 4395)<BR>@@ -51,6 +51,7
@@<BR> #if
defined(CL_KERNEL)<BR> ib_ca_handle_t h_um_ca;<BR> PDEVICE_OBJECT p_hca_dev;<BR>+ PDEVICE_OBJECT p_fdo;<BR> #endif<BR> <BR> } ib_ca_t;<BR>Index:
V:/svn/winib/trunk/core/al/al_ci_ca.h<BR>===================================================================<BR>---
V:/svn/winib/trunk/core/al/al_ci_ca.h (revision 4394)<BR>+++
V:/svn/winib/trunk/core/al/al_ci_ca.h (revision 4395)<BR>@@ -57,7 +57,8
@@<BR> create_ci_ca(<BR> IN al_obj_t *p_parent_obj,<BR> IN const ci_interface_t* p_ci,<BR>- IN const PDEVICE_OBJECT p_hca_dev<BR>+ IN const PDEVICE_OBJECT p_hca_dev,<BR>+ IN const PDEVICE_OBJECT p_fdo<BR> );<BR> <BR> DEVICE_OBJECT*<BR>Index:
V:/svn/winib/trunk/inc/kernel/iba/ib_ci_ifc.h<BR>===================================================================<BR>---
V:/svn/winib/trunk/inc/kernel/iba/ib_ci_ifc.h (revision 4394)<BR>+++
V:/svn/winib/trunk/inc/kernel/iba/ib_ci_ifc.h (revision 4395)<BR>@@ -56,7
+56,8 @@<BR> typedef
ib_api_status_t<BR> (*ib_pfn_register_ca_t)(<BR> IN const ci_interface_t*
const p_ci,<BR>- IN const PDEVICE_OBJECT p_hca_dev<BR>+ IN const PDEVICE_OBJECT p_hca_dev,<BR>+ IN const PDEVICE_OBJECT p_fdo<BR> );<BR> <BR> <BR>Index:
V:/svn/winib/trunk/inc/complib/cl_log.h<BR>===================================================================<BR>---
V:/svn/winib/trunk/inc/complib/cl_log.h (revision 4394)<BR>+++
V:/svn/winib/trunk/inc/complib/cl_log.h (revision 4395)<BR>@@ -43,7 +43,6
@@<BR> #ifndef _CL_LOG_H_<BR> #define
_CL_LOG_H_<BR> <BR>-<BR> #include
<complib/cl_types.h><BR> <BR> <BR>@@ -147,9 +146,99
@@<BR> *********/<BR> <BR> <BR>+/****f* Component Library:
Debug Output/cl_msg_out<BR>+* NAME<BR>+* cl_event_log_write<BR>+*<BR>+*
DESCRIPTION<BR>+* The cl_event_log_write function sends a message to
System Event Logger.<BR>+*<BR>+* SYNOPSIS<BR>+*/<BR>+CL_EXPORT
void<BR>+cl_event_log_write(<BR>+ PVOID p_io_object,<BR>+ ULONG p_error_code,<BR>+ ULONG p_unique_error_code,<BR>+ ULONG p_final_status,<BR>+ PWCHAR p_insertion_string,<BR>+ ULONG p_n_data_items,<BR>+ ...<BR>+ );<BR>+/*<BR>+*
PARAMETERS<BR>+* p_io_object<BR>+* [in] The IO object ( driver
object or device object
).<BR>+* <BR>+* p_error_code<BR>+* [in] The error
code.<BR>+*<BR>+* p_unique_error_code<BR>+* [in] A specific
error code.<BR>+*<BR>+* p_final_status<BR>+* [in] The final
status.<BR>+*<BR>+* p_insertion_string<BR>+* [in] String to
print.<BR>+*<BR>+* p_n_data_items<BR>+* [in] Number of data
items<BR>+*<BR>+* ...<BR>+* [in] data items values<BR>+*<BR>+*
RETURN VALUE<BR>+* This function does not return a value.<BR>+*<BR>+*
NOTES<BR>+* cl_event_log_write is available in both debug and release
builds.<BR>+*<BR>+* The function uses IoAllocateErrorLogEntry and
IoWriteErrorLogEntry<BR>+* functions to send data to System Event
Log.<BR>+*<BR>+* SEE ALSO<BR>+* <BR>+*********/<BR>+<BR> #ifdef
__cplusplus<BR> }<BR> #endif<BR> <BR>+#ifdef
CL_KERNEL<BR>+#include <ntddk.h><BR>+#define NTSTRSAFE_LIB<BR>+#include
<ntstrsafe.h><BR> <BR>+#define
CL_LOG_BUF_LEN 512<BR>+extern WCHAR g_cl_wlog[ CL_LOG_BUF_LEN ];
<BR>+extern UCHAR g_cl_slog[ CL_LOG_BUF_LEN ]; <BR>+<BR>+static void
__build_str( const char * format, ... )<BR>+{<BR>+ NTSTATUS
status;<BR>+ va_list p_arg;<BR>+ va_start(p_arg,
format);<BR>+ status = RtlStringCbVPrintfA((char *)g_cl_slog,
sizeof(g_cl_slog), format , p_arg);<BR>+ if (status)<BR>+ goto
end;<BR>+ status = RtlStringCchPrintfW(g_cl_wlog,
sizeof(g_cl_wlog)/sizeof(g_cl_wlog[0]), L"%S", g_cl_slog);<BR>+ if
(status)<BR>+ goto
end;<BR>+end:<BR>+ va_end(p_arg);<BR>+}<BR>+<BR>+#define
CL_PRINT_TO_EVENT_LOG(_obj_,_event_id_,_msg_) \<BR>+ {
\<BR>+ NTSTATUS event_id = _event_id_;
\<BR>+ __build_str _msg_; \<BR>+ cl_event_log_write(
_obj_, (ULONG)event_id, 0, 0, g_cl_wlog, 0, 0 );
\<BR>+ }<BR>+#else<BR>+<BR>+#define
CL_PRINT_TO_EVENT_LOG(_obj_,_event_id_,_msg_)<BR>+<BR>+#endif<BR>+<BR> #endif /*
_CL_LOG_H_ */<BR>Index:
V:/svn/winib/trunk/inc/iba/ib_ci.h<BR>===================================================================<BR>---
V:/svn/winib/trunk/inc/iba/ib_ci.h (revision 4394)<BR>+++
V:/svn/winib/trunk/inc/iba/ib_ci.h (revision 4395)<BR>@@ -2937,7 +2937,8
@@<BR> AL_EXPORT ib_api_status_t<BR> ib_register_ca
(<BR> IN const ci_interface_t* p_ci,<BR>- IN const PDEVICE_OBJECT p_hca_dev<BR>+ IN const PDEVICE_OBJECT p_hca_dev,<BR>+ IN const PDEVICE_OBJECT p_fdo<BR> );<BR> /*<BR> *
DESCRIPTION<BR>@@ -2954,6 +2955,8 @@<BR> * vector to support
verbs functionality.<BR> * p_hca_dev<BR> * PDO of
HCA device<BR>+* p_fdo<BR>+* FDO of IBBUS
device<BR> *<BR> * RETURN VALUE<BR> * IB_SUCCESS<BR>Index:
V:/svn/winib/trunk/hw/mlx4/kernel/hca/mlx4_hca.inx<BR>===================================================================<BR>---
V:/svn/winib/trunk/hw/mlx4/kernel/hca/mlx4_hca.inx (revision 4394)<BR>+++
V:/svn/winib/trunk/hw/mlx4/kernel/hca/mlx4_hca.inx (revision 4395)<BR>@@
-177,19 +177,19
@@<BR> <BR> [MLX4HCA.DDInstall.ntx86.Services]<BR> AddService =
mlx4_hca,%SPSVCINST_ASSOCSERVICE%,MLX4HCA.ServiceInstall,MLX4HCA.EventLog<BR>-AddService
= ibbus,,Ibbus.ServiceInstall<BR>+AddService =
ibbus,,Ibbus.ServiceInstall,IBBUS.EventLog<BR> AddService =
WinVerbs,,WinVerbs.ServiceInstall<BR> AddService =
WinMad,,WinMad.ServiceInstall<BR> <BR> [MLX4HCA.DDInstall.ntamd64.Services]<BR> AddService
=
mlx4_hca,%SPSVCINST_ASSOCSERVICE%,MLX4HCA.ServiceInstall,MLX4HCA.EventLog<BR>-AddService
= ibbus,,Ibbus.ServiceInstall<BR>+AddService =
ibbus,,Ibbus.ServiceInstall,IBBUS.EventLog<BR> AddService =
WinVerbs,,WinVerbs.ServiceInstall<BR> AddService =
WinMad,,WinMad.ServiceInstall<BR> <BR> [MLX4HCA.DDInstall.ntia64.Services]<BR> AddService
=
mlx4_hca,%SPSVCINST_ASSOCSERVICE%,MLX4HCA.ServiceInstall,MLX4HCA.EventLog<BR>-AddService
= ibbus,,Ibbus.ServiceInstall<BR>+AddService =
ibbus,,Ibbus.ServiceInstall,IBBUS.EventLog<BR> AddService =
WinVerbs,,WinVerbs.ServiceInstall<BR> AddService =
WinMad,,WinMad.ServiceInstall<BR> <BR>@@ -282,6 +282,14
@@<BR> AddReg =
Ibbus.ParamsReg<BR> Dependencies =
mlx4_hca<BR> <BR>+[IBBUS.EventLog]<BR>+AddReg =
IBBUS.AddEventLogReg<BR>+<BR>+[IBBUS.AddEventLogReg]<BR>+HKR, ,
EventMessageFile, 0x00020000,
"%%SystemRoot%%\System32\IoLogMsg.dll;%%SystemRoot%%\System32\drivers\ibbus.sys"<BR>+HKR,
, TypesSupported, 0x00010001,
7<BR>+<BR>+<BR> [Ibbus.ParamsReg]<BR> HKR,"Parameters","IbalDebugLevel",%REG_DWORD%,2<BR> HKR,"Parameters","IbalDebugFlags",%REG_DWORD%,0x00ffffff<BR></FONT></DIV></BLOCKQUOTE></BODY></HTML>