void __RPC_USER SAMPR_HANDLE_rundown(SAMPR_HANDLE hHandle)
{
+ FIXME("SAMPR_HANDLE_rundown(%p)\n", hHandle);
}
/* Shut the server down */
RpcMgmtStopServerListening(0);
+ Status = SampShutdownDisplayCache();
+ if (!NT_SUCCESS(Status))
+ {
+ ERR("SampShutdownDisplayCache() failed (Status 0x%08lx)\n", Status);
+ }
+
return STATUS_SUCCESS;
}
OUT unsigned long *TotalReturned,
OUT PSAMPR_DISPLAY_INFO_BUFFER Buffer)
{
- TRACE("SamrQueryDisplayInformation3(%p %lu %lu %lu %lu %p %p %p)\n",
+ PSAM_DB_OBJECT DomainObject;
+ NTSTATUS Status;
+
+ FIXME("SamrQueryDisplayInformation3(%p %lu %lu %lu %lu %p %p %p)\n",
DomainHandle, DisplayInformationClass, Index,
EntryCount, PreferredMaximumLength, TotalAvailable,
TotalReturned, Buffer);
- UNIMPLEMENTED;
+ RtlAcquireResourceShared(&SampResource,
+ TRUE);
+
+ /* Validate the domain handle */
+ Status = SampValidateDbObject(DomainHandle,
+ SamDbDomainObject,
+ DOMAIN_LIST_ACCOUNTS,
+ &DomainObject);
+ if (!NT_SUCCESS(Status))
+ {
+ ERR("SampValidateDbObject() failed (Status 0x%08lx)\n", Status);
+ goto done;
+ }
+
+ Status = SampFillDisplayCache(DomainObject,
+ DisplayInformationClass);
+ if (!NT_SUCCESS(Status))
+ {
+ ERR("SampFillDisplayCache() failed (Status 0x%08lx)\n", Status);
+ goto done;
+ }
+
+done:
+ TRACE("returns with status 0x%08lx\n", Status);
+
+ RtlReleaseResource(&SampResource);
+
+// return Status;
return STATUS_NOT_IMPLEMENTED;
}