Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

rmvars.c File Reference

#include "rmp.h"

Go to the source code of this file.

Functions

BOOLEAN SepRmDbInitialization (VOID)

Variables

PEPROCESS SepRmLsaCallProcess
ERESOURCE SepRmDbLock
SEP_RM_STATE SepRmState
PSEP_LOGON_SESSION_REFERENCESSepLogonSessions = NULL


Function Documentation

BOOLEAN SepRmDbInitialization VOID   ) 
 

Definition at line 95 of file rmvars.c.

References ASSERT, _SEP_RM_STATE::AuditingEnabled, ExAllocatePoolWithTag, ExInitializeResource, FALSE, NT_SUCCESS, NTSTATUS(), NULL, _SEP_RM_STATE::OperationalMode, PagedPool, SeAnonymousAuthenticationId, SEP_LOGON_TRACK_ARRAY_SIZE, SepCreateLogonSessionTrack(), SepLogonSessions, SepRmDbLock, SepRmState, SeSystemAuthenticationId, Status, and TRUE.

Referenced by SepRmInitPhase0().

00100 : 00101 00102 This function initializes the reference monitor in-memory database. 00103 00104 Arguments: 00105 00106 None. 00107 00108 Return Value: 00109 00110 TRUE if database successfully initialized. 00111 FALSE if not successfully initialized. 00112 00113 --*/ 00114 { 00115 NTSTATUS Status; 00116 ULONG i; 00117 00118 00119 // 00120 // Create the reference monitor database lock 00121 // 00122 // Use SepRmAcquireDbReadLock() 00123 // SepRmAcquireDbWriteLock() 00124 // SepRmReleaseDbReadLock() 00125 // SepRmReleaseDbWriteLock() 00126 // 00127 // to gain access to the reference monitor database. 00128 // 00129 00130 ExInitializeResource(&SepRmDbLock); 00131 00132 // 00133 // Initialize the Logon Session tracking array. 00134 // 00135 00136 SepLogonSessions = ExAllocatePoolWithTag( PagedPool, 00137 sizeof( PSEP_LOGON_SESSION_REFERENCES ) * SEP_LOGON_TRACK_ARRAY_SIZE, 00138 'SLeS' 00139 ); 00140 00141 if (SepLogonSessions == NULL) { 00142 return( FALSE ); 00143 } 00144 00145 for (i=0;i<SEP_LOGON_TRACK_ARRAY_SIZE;i++) { 00146 00147 SepLogonSessions[ i ] = NULL; 00148 } 00149 00150 // 00151 // Now add in a record representing the system logon session. 00152 // 00153 00154 Status = SepCreateLogonSessionTrack( &SeSystemAuthenticationId ); 00155 ASSERT( NT_SUCCESS(Status) ); 00156 if ( !NT_SUCCESS(Status)) { 00157 return FALSE; 00158 } 00159 00160 // 00161 // Add one for the null session logon session 00162 // 00163 00164 Status = SepCreateLogonSessionTrack( &SeAnonymousAuthenticationId ); 00165 ASSERT( NT_SUCCESS(Status) ); 00166 if ( !NT_SUCCESS(Status)) { 00167 return FALSE; 00168 } 00169 00170 00171 00172 00173 // 00174 // The correct RM state will be set when the local security policy 00175 // information is retrieved (by the LSA) and subsequently passed to 00176 // the reference monitor later on in initialization. For now, initialize 00177 // the state to something that will work for the remainder of 00178 // system initialization. 00179 // 00180 00181 SepRmState.AuditingEnabled = 0; // auditing state disabled. 00182 SepRmState.OperationalMode = LSA_MODE_PASSWORD_PROTECTED; 00183 00184 00185 00186 return TRUE; 00187 00188 00189 } }


Variable Documentation

PSEP_LOGON_SESSION_REFERENCES* SepLogonSessions = NULL
 

Definition at line 82 of file rmvars.c.

Referenced by SeMarkLogonSessionForTerminationNotification(), SepCreateLogonSessionTrack(), SepDeleteLogonSessionTrack(), SepDeReferenceLogonSession(), SepReferenceLogonSession(), and SepRmDbInitialization().

ERESOURCE SepRmDbLock
 

Definition at line 64 of file rmvars.c.

Referenced by SepRmDbInitialization().

PEPROCESS SepRmLsaCallProcess
 

Definition at line 46 of file rmvars.c.

Referenced by SepRmCallLsa(), and SepRmCommandServerThreadInit().

SEP_RM_STATE SepRmState
 

Definition at line 71 of file rmvars.c.

Referenced by SepRmCallLsa(), SepRmCommandServerThread(), SepRmCommandServerThreadInit(), SepRmDbInitialization(), and SeRmInitPhase1().


Generated on Sat May 15 19:45:29 2004 for test by doxygen 1.3.7