rpcrt4: Add stub implementations for RPC authentication functions.
diff --git a/dlls/rpcrt4/rpc_binding.c b/dlls/rpcrt4/rpc_binding.c
index 70eb6b9..71ebaa6 100644
--- a/dlls/rpcrt4/rpc_binding.c
+++ b/dlls/rpcrt4/rpc_binding.c
@@ -939,3 +939,104 @@
     FIXME("(%p): stub\n", BindingHandle);
     return RPC_S_OK;
 }
+
+/***********************************************************************
+ *             RpcBindingInqAuthInfoExA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingInqAuthInfoExA( RPC_BINDING_HANDLE Binding, unsigned char ** ServerPrincName, unsigned long *AuthnLevel,
+                          unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc,
+                          unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS )
+{
+    FIXME("%p %p %p %p %p %p %lu %p\n", Binding, ServerPrincName, AuthnLevel,
+          AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
+    return RPC_S_INVALID_BINDING;
+}
+
+/***********************************************************************
+ *             RpcBindingInqAuthInfoExW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingInqAuthInfoExW( RPC_BINDING_HANDLE Binding, unsigned short ** ServerPrincName, unsigned long *AuthnLevel,
+                          unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc,
+                          unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS )
+{
+    FIXME("%p %p %p %p %p %p %lu %p\n", Binding, ServerPrincName, AuthnLevel,
+          AuthnSvc, AuthIdentity, AuthzSvc, RpcQosVersion, SecurityQOS);
+    return RPC_S_INVALID_BINDING;
+}
+
+/***********************************************************************
+ *             RpcBindingInqAuthInfoA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingInqAuthInfoA( RPC_BINDING_HANDLE Binding, unsigned char ** ServerPrincName, unsigned long *AuthnLevel,
+                        unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc )
+{
+    FIXME("%p %p %p %p %p %p\n", Binding, ServerPrincName, AuthnLevel,
+          AuthnSvc, AuthIdentity, AuthzSvc);
+    return RPC_S_INVALID_BINDING;
+}
+
+/***********************************************************************
+ *             RpcBindingInqAuthInfoW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingInqAuthInfoW( RPC_BINDING_HANDLE Binding, unsigned short ** ServerPrincName, unsigned long *AuthnLevel,
+                        unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc )
+{
+    FIXME("%p %p %p %p %p %p\n", Binding, ServerPrincName, AuthnLevel,
+          AuthnSvc, AuthIdentity, AuthzSvc);
+    return RPC_S_INVALID_BINDING;
+}
+
+/***********************************************************************
+ *             RpcBindingSetAuthInfoExA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingSetAuthInfoExA( RPC_BINDING_HANDLE Binding, unsigned char *ServerPrincName,
+                          unsigned long AuthnLevel, unsigned long AuthnSvc,
+                          RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr,
+                          RPC_SECURITY_QOS *SecurityQos )
+{
+    FIXME("%p %s %lu %lu %p %lu %p\n", Binding, debugstr_a((const char*)ServerPrincName),
+          AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
+    return RPC_S_OK;
+}
+
+/***********************************************************************
+ *             RpcBindingSetAuthInfoExW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingSetAuthInfoExW( RPC_BINDING_HANDLE Binding, unsigned short *ServerPrincName, unsigned long AuthnLevel,
+                          unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr,
+                          RPC_SECURITY_QOS *SecurityQos )
+{
+    FIXME("%p %s %lu %lu %p %lu %p\n", Binding, debugstr_w((const WCHAR*)ServerPrincName),
+          AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr, SecurityQos);
+    return RPC_S_OK;
+}
+
+/***********************************************************************
+ *             RpcBindingSetAuthInfoA (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingSetAuthInfoA( RPC_BINDING_HANDLE Binding, unsigned char *ServerPrincName, unsigned long AuthnLevel,
+                          unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr )
+{
+    FIXME("%p %s %lu %lu %p %lu\n", Binding, debugstr_a((const char*)ServerPrincName),
+          AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
+    return RPC_S_OK;
+}
+
+/***********************************************************************
+ *             RpcBindingSetAuthInfoW (RPCRT4.@)
+ */
+RPCRTAPI RPC_STATUS RPC_ENTRY
+RpcBindingSetAuthInfoW( RPC_BINDING_HANDLE Binding, unsigned short *ServerPrincName, unsigned long AuthnLevel,
+                        unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr )
+{
+    FIXME("%p %s %lu %lu %p %lu\n", Binding, debugstr_w((const WCHAR*)ServerPrincName),
+          AuthnLevel, AuthnSvc, AuthIdentity, AuthzSvr);
+    return RPC_S_OK;
+}
diff --git a/dlls/rpcrt4/rpcrt4.spec b/dlls/rpcrt4/rpcrt4.spec
index d2618a9..ea84ba0 100644
--- a/dlls/rpcrt4/rpcrt4.spec
+++ b/dlls/rpcrt4/rpcrt4.spec
@@ -377,18 +377,18 @@
 @ stub RpcBindingInqAuthClientExA
 @ stub RpcBindingInqAuthClientExW
 @ stub RpcBindingInqAuthClientW
-@ stub RpcBindingInqAuthInfoA
-@ stub RpcBindingInqAuthInfoExA
-@ stub RpcBindingInqAuthInfoExW
-@ stub RpcBindingInqAuthInfoW
+@ stdcall RpcBindingInqAuthInfoA(ptr ptr ptr ptr ptr ptr)
+@ stdcall RpcBindingInqAuthInfoExA(ptr ptr ptr ptr ptr ptr long ptr)
+@ stdcall RpcBindingInqAuthInfoExW(ptr ptr ptr ptr ptr ptr long ptr)
+@ stdcall RpcBindingInqAuthInfoW(ptr ptr ptr ptr ptr ptr)
 @ stdcall RpcBindingInqObject(ptr ptr)
 @ stub RpcBindingInqOption
 @ stub RpcBindingReset
 @ stub RpcBindingServerFromClient
-@ stub RpcBindingSetAuthInfoA
-@ stub RpcBindingSetAuthInfoExA
-@ stub RpcBindingSetAuthInfoExW
-@ stub RpcBindingSetAuthInfoW
+@ stdcall RpcBindingSetAuthInfoA(ptr str long long ptr long)
+@ stdcall RpcBindingSetAuthInfoExA(ptr str long long ptr long ptr)
+@ stdcall RpcBindingSetAuthInfoExW(ptr wstr long long ptr long ptr)
+@ stdcall RpcBindingSetAuthInfoW(ptr wstr long long ptr long)
 @ stdcall RpcBindingSetObject(ptr ptr)
 @ stub RpcBindingSetOption
 @ stdcall RpcBindingToStringBindingA(ptr ptr)
diff --git a/include/rpcdce.h b/include/rpcdce.h
index 68cc7ad..394b2c0 100644
--- a/include/rpcdce.h
+++ b/include/rpcdce.h
@@ -148,6 +148,13 @@
     unsigned long Flags;
 } SEC_WINNT_AUTH_IDENTITY_A, *PSEC_WINNT_AUTH_IDENTITY_A;
 
+typedef struct _RPC_SECURITY_QOS {
+    unsigned long Version;
+    unsigned long Capabilities;
+    unsigned long IdentityTracking;
+    unsigned long ImpersonationType;
+} RPC_SECURITY_QOS, *PRPC_SECURITY_QOS;
+
 #define _SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(_SEC_WINNT_AUTH_IDENTITY_)
 #define  SEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(SEC_WINNT_AUTH_IDENTITY_)
 #define PSEC_WINNT_AUTH_IDENTITY WINELIB_NAME_AW(PSEC_WINNT_AUTH_IDENTITY_)
@@ -304,6 +311,46 @@
 #define RpcServerRegisterAuthInfo WINELIB_NAME_AW(RpcServerRegisterAuthInfo)
 
 RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingSetAuthInfoExA( RPC_BINDING_HANDLE Binding, unsigned char *ServerPrincName, unsigned long AuthnLevel,
+                            unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr,
+                            RPC_SECURITY_QOS *SecurityQos );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingSetAuthInfoExW( RPC_BINDING_HANDLE Binding, unsigned short *ServerPrincName, unsigned long AuthnLevel,
+                            unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr,
+                            RPC_SECURITY_QOS *SecurityQos );
+#define RpcBindingSetAuthInfoEx WINELIB_NAME_AW(RpcBindingSetAuthInfoEx)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingSetAuthInfoA( RPC_BINDING_HANDLE Binding, unsigned char *ServerPrincName, unsigned long AuthnLevel,
+                          unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingSetAuthInfoW( RPC_BINDING_HANDLE Binding, unsigned short *ServerPrincName, unsigned long AuthnLevel,
+                          unsigned long AuthnSvc, RPC_AUTH_IDENTITY_HANDLE AuthIdentity, unsigned long AuthzSvr );
+#define RpcBindingSetAuthInfo WINELIB_NAME_AW(RpcBindingSetAuthInfo)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingInqAuthInfoExA( RPC_BINDING_HANDLE Binding, unsigned char ** ServerPrincName, unsigned long *AuthnLevel,
+                            unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc,
+                            unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingInqAuthInfoExW( RPC_BINDING_HANDLE Binding, unsigned short ** ServerPrincName, unsigned long *AuthnLevel,
+                            unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc,
+                            unsigned long RpcQosVersion, RPC_SECURITY_QOS *SecurityQOS );
+#define RpcBindingInqAuthInfoEx WINELIB_NAME_AW(RpcBindingInqAuthInfoEx)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingInqAuthInfoA( RPC_BINDING_HANDLE Binding, unsigned char ** ServerPrincName, unsigned long *AuthnLevel,
+                          unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc );
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
+  RpcBindingInqAuthInfoW( RPC_BINDING_HANDLE Binding, unsigned short ** ServerPrincName, unsigned long *AuthnLevel,
+                          unsigned long *AuthnSvc, RPC_AUTH_IDENTITY_HANDLE *AuthIdentity, unsigned long *AuthzSvc );
+#define RpcBindingInqAuthInfo WINELIB_NAME_AW(RpcBindingInqAuthInfo)
+
+RPCRTAPI RPC_STATUS RPC_ENTRY
   RpcNetworkIsProtseqValidA( unsigned char *protseq );
 RPCRTAPI RPC_STATUS RPC_ENTRY
   RpcNetworkIsProtseqValidW( unsigned short *protseq );