/*
- * @unimplemented
+ * @implemented
*/
NTSTATUS
WINAPI
IN TRUSTED_INFORMATION_CLASS InformationClass,
OUT PVOID *Buffer)
{
- FIXME("LsaQueryInfoTrustedDomain(%p %d %p) stub\n",
+ PLSAPR_TRUSTED_DOMAIN_INFO TrustedDomainInformation = NULL;
+ NTSTATUS Status;
+
+ TRACE("LsaQueryInfoTrustedDomain(%p %d %p) stub\n",
TrustedDomainHandle, InformationClass, Buffer);
- return STATUS_NOT_IMPLEMENTED;
+
+ if (InformationClass == TrustedDomainAuthInformationInternal ||
+ InformationClass == TrustedDomainFullInformationInternal)
+ return STATUS_INVALID_INFO_CLASS;
+
+ RpcTryExcept
+ {
+ Status = LsarQueryInfoTrustedDomain((LSAPR_HANDLE)TrustedDomainHandle,
+ InformationClass,
+ &TrustedDomainInformation);
+ *Buffer = TrustedDomainInformation;
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ if (TrustedDomainInformation != NULL)
+ MIDL_user_free(TrustedDomainInformation);
+
+ Status = I_RpcMapWin32Status(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ TRACE("Done (Status: 0x%08x)\n", Status);
+
+ return Status;
}
/*
- * @unimplemented
+ * @implemented
*/
NTSTATUS
WINAPI
IN TRUSTED_INFORMATION_CLASS InformationClass,
OUT PVOID *Buffer)
{
- FIXME("LsaQueryTrustedDomainInfo(%p %p %d %p) stub\n",
+ NTSTATUS Status;
+
+ TRACE("LsaQueryTrustedDomainInfo(%p %p %d %p) stub\n",
PolicyHandle, TrustedDomainSid, InformationClass, Buffer);
- return STATUS_OBJECT_NAME_NOT_FOUND;
+
+ if (InformationClass == TrustedDomainAuthInformationInternal ||
+ InformationClass == TrustedDomainFullInformationInternal)
+ return STATUS_INVALID_INFO_CLASS;
+
+ RpcTryExcept
+ {
+ Status = LsarQueryTrustedDomainInfo((LSAPR_HANDLE)PolicyHandle,
+ (PRPC_SID)TrustedDomainSid,
+ InformationClass,
+ (PLSAPR_TRUSTED_DOMAIN_INFO *)Buffer);
+ }
+ RpcExcept(EXCEPTION_EXECUTE_HANDLER)
+ {
+ Status = I_RpcMapWin32Status(RpcExceptionCode());
+ }
+ RpcEndExcept;
+
+ return Status;
}