+ PSAM_DB_OBJECT ServerObject;
+ NTSTATUS Status;
+
+ TRACE("SamrConnect5(%p 0x%lx %lu %p %p %p %p)\n",
+ ServerName, DesiredAccess, InVersion, InRevisionInfo,
+ OutVersion, OutRevisionInfo, ServerHandle);
+
+ if (InVersion != 1)
+ return STATUS_NOT_SUPPORTED;
+
+ RtlAcquireResourceShared(&SampResource,
+ TRUE);
+
+ /* Map generic access rights */
+ RtlMapGenericMask(&DesiredAccess,
+ &ServerMapping);
+
+ /* Open the Server Object */
+ Status = SampOpenDbObject(NULL,
+ NULL,
+ L"SAM",
+ 0,
+ SamDbServerObject,
+ DesiredAccess,
+ &ServerObject);
+ if (NT_SUCCESS(Status))
+ {
+ *OutVersion = 1;
+
+ OutRevisionInfo->V1.Revision = 3;
+ OutRevisionInfo->V1.SupportedFeatures = 0;
+
+ *ServerHandle = (SAMPR_HANDLE)ServerObject;
+ }
+
+ RtlReleaseResource(&SampResource);
+
+ TRACE("SamrConnect5 done (Status 0x%08lx)\n", Status);
+
+ return Status;