/*
  winbind IRPC interface
*/

#include "idl_types.h"
  
import "netlogon.idl";

[
  uuid("245f3e6b-3c5d-6e21-3a2d-2a3d645b7221"),
  version(1.0),
  pointer_default(unique)
]
interface winbind
{
	declare [switch_type(uint16)] union netr_LogonLevel;
	declare [switch_type(uint16)] union netr_Validation;

	/* a call to get runtime informations */
	void winbind_information(/* TODO */);

	/* 
	 * a call to trigger some internal events,
	 * for use in torture tests...
	 */
	NTSTATUS winbind_remote_control(/* TODO */);

	/*
	 * do a netr_LogonSamLogon() against the right DC
	 */
	NTSTATUS winbind_SamLogon(
		[in]  uint16 logon_level,
		[in]  [switch_is(logon_level)] netr_LogonLevel logon,
		[in]  uint16 validation_level,
		[out] [switch_is(validation_level)] netr_Validation validation,
		[out] uint8 authoritative,
		[in,out] uint32 flags
	);
}
