mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 02:43:09 +00:00
[NETAPI32] Add RPC binding code to functions that require explicit binding
This commit is contained in:
parent
94f92b0b2e
commit
3fe3f9acc7
1 changed files with 113 additions and 23 deletions
|
@ -138,6 +138,70 @@ WKSSVC_IMPERSONATE_HANDLE_unbind(WKSSVC_IMPERSONATE_HANDLE pszSystemName,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NET_API_STATUS
|
||||||
|
NetpBind(
|
||||||
|
LPCWSTR pszServerName,
|
||||||
|
handle_t *pBindingHandle)
|
||||||
|
{
|
||||||
|
handle_t hBinding = NULL;
|
||||||
|
LPWSTR pszStringBinding;
|
||||||
|
RPC_STATUS status;
|
||||||
|
|
||||||
|
FIXME("NetpBind(%S)\n", pszServerName);
|
||||||
|
|
||||||
|
*pBindingHandle = NULL;
|
||||||
|
|
||||||
|
status = RpcStringBindingComposeW(NULL,
|
||||||
|
L"ncacn_np",
|
||||||
|
(LPWSTR)pszServerName,
|
||||||
|
L"\\pipe\\wkssvc",
|
||||||
|
NULL,
|
||||||
|
&pszStringBinding);
|
||||||
|
if (status)
|
||||||
|
{
|
||||||
|
FIXME("RpcStringBindingCompose returned 0x%x\n", status);
|
||||||
|
return NetpNtStatusToApiStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Set the binding handle that will be used to bind to the server. */
|
||||||
|
status = RpcBindingFromStringBindingW(pszStringBinding,
|
||||||
|
&hBinding);
|
||||||
|
if (status)
|
||||||
|
{
|
||||||
|
FIXME("RpcBindingFromStringBinding returned 0x%x\n", status);
|
||||||
|
}
|
||||||
|
|
||||||
|
status = RpcStringFreeW(&pszStringBinding);
|
||||||
|
if (status)
|
||||||
|
{
|
||||||
|
FIXME("RpcStringFree returned 0x%x\n", status);
|
||||||
|
}
|
||||||
|
|
||||||
|
*pBindingHandle = hBinding;
|
||||||
|
|
||||||
|
return NetpNtStatusToApiStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NET_API_STATUS
|
||||||
|
NetpUnbind(
|
||||||
|
handle_t BindingHandle)
|
||||||
|
{
|
||||||
|
RPC_STATUS status;
|
||||||
|
|
||||||
|
FIXME("NetpUnbind(%p)\n", BindingHandle);
|
||||||
|
|
||||||
|
status = RpcBindingFree(&hBinding);
|
||||||
|
if (status)
|
||||||
|
{
|
||||||
|
TRACE("RpcBindingFree returned 0x%x\n", status);
|
||||||
|
return NetpNtStatusToApiStatus(status);
|
||||||
|
}
|
||||||
|
|
||||||
|
return NERR_Success;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
NET_API_STATUS
|
NET_API_STATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
NetAddAlternateComputerName(
|
NetAddAlternateComputerName(
|
||||||
|
@ -318,24 +382,30 @@ NetGetJoinableOUs(
|
||||||
NET_API_STATUS
|
NET_API_STATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
NetJoinDomain(
|
NetJoinDomain(
|
||||||
_In_ LPCWSTR lpServer,
|
_In_opt_ LPCWSTR lpServer,
|
||||||
_In_ LPCWSTR lpDomain,
|
_In_ LPCWSTR lpDomain,
|
||||||
_In_ LPCWSTR lpAccountOU,
|
_In_opt_ LPCWSTR lpAccountOU,
|
||||||
_In_ LPCWSTR lpAccount,
|
_In_opt_ LPCWSTR lpAccount,
|
||||||
_In_ LPCWSTR lpPassword,
|
_In_opt_ LPCWSTR lpPassword,
|
||||||
_In_ DWORD fJoinOptions)
|
_In_ DWORD fJoinOptions)
|
||||||
{
|
{
|
||||||
PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword;
|
PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
|
||||||
handle_t BindingHandle;
|
handle_t BindingHandle = NULL;
|
||||||
NET_API_STATUS status;
|
NET_API_STATUS status;
|
||||||
|
|
||||||
TRACE("NetJoinDomain(%s %s %s %s 0x%lx)\n",
|
FIXME("NetJoinDomain(%s %s %s %s 0x%lx)\n",
|
||||||
debugstr_w(lpServer), debugstr_w(lpDomain), debugstr_w(lpAccountOU),
|
debugstr_w(lpServer), debugstr_w(lpDomain), debugstr_w(lpAccountOU),
|
||||||
debugstr_w(lpAccount), debugstr_w(lpPassword), fJoinOptions);
|
debugstr_w(lpAccount), debugstr_w(lpPassword), fJoinOptions);
|
||||||
|
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
BindingHandle = NULL;
|
|
||||||
EncryptedPassword = NULL;
|
status = NetpBind(lpServer,
|
||||||
|
&BindingHandle);
|
||||||
|
if (status != NERR_Success)
|
||||||
|
{
|
||||||
|
ERR("NetpBind() failed (status 0x%lx)\n", status);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
RpcTryExcept
|
RpcTryExcept
|
||||||
{
|
{
|
||||||
|
@ -349,10 +419,14 @@ NetJoinDomain(
|
||||||
}
|
}
|
||||||
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
|
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
|
||||||
{
|
{
|
||||||
status = I_RpcMapWin32Status(RpcExceptionCode());
|
RPC_STATUS rpcStatus = RpcExceptionCode();
|
||||||
|
FIXME("Exception 0x%lx\n", rpcStatus);
|
||||||
|
status = I_RpcMapWin32Status(rpcStatus);
|
||||||
}
|
}
|
||||||
RpcEndExcept;
|
RpcEndExcept;
|
||||||
|
|
||||||
|
NetpUnbind(BindingHandle);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -481,12 +555,12 @@ NET_API_STATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
NetUnjoinDomain(
|
NetUnjoinDomain(
|
||||||
_In_ LPCWSTR lpServer,
|
_In_ LPCWSTR lpServer,
|
||||||
_In_ LPCWSTR lpAccount,
|
_In_opt_ LPCWSTR lpAccount,
|
||||||
_In_ LPCWSTR lpPassword,
|
_In_opt_ LPCWSTR lpPassword,
|
||||||
_In_ DWORD fUnjoinOptions)
|
_In_ DWORD fUnjoinOptions)
|
||||||
{
|
{
|
||||||
PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword;
|
PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
|
||||||
handle_t BindingHandle;
|
handle_t BindingHandle = NULL;
|
||||||
NET_API_STATUS status;
|
NET_API_STATUS status;
|
||||||
|
|
||||||
TRACE("NetUnjoinDomain(%s %s %s %s 0x%lx)\n",
|
TRACE("NetUnjoinDomain(%s %s %s %s 0x%lx)\n",
|
||||||
|
@ -494,8 +568,14 @@ NetUnjoinDomain(
|
||||||
debugstr_w(lpPassword), fUnjoinOptions);
|
debugstr_w(lpPassword), fUnjoinOptions);
|
||||||
|
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
BindingHandle = NULL;
|
|
||||||
EncryptedPassword = NULL;
|
status = NetpBind(lpServer,
|
||||||
|
&BindingHandle);
|
||||||
|
if (status != NERR_Success)
|
||||||
|
{
|
||||||
|
ERR("NetpBind() failed (status 0x%lx)\n", status);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
RpcTryExcept
|
RpcTryExcept
|
||||||
{
|
{
|
||||||
|
@ -511,6 +591,8 @@ NetUnjoinDomain(
|
||||||
}
|
}
|
||||||
RpcEndExcept;
|
RpcEndExcept;
|
||||||
|
|
||||||
|
NetpUnbind(BindingHandle);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -691,14 +773,14 @@ NetUseGetInfo(
|
||||||
NET_API_STATUS
|
NET_API_STATUS
|
||||||
WINAPI
|
WINAPI
|
||||||
NetValidateName(
|
NetValidateName(
|
||||||
_In_ LPCWSTR lpServer,
|
_In_opt_ LPCWSTR lpServer,
|
||||||
_In_ LPCWSTR lpName,
|
_In_ LPCWSTR lpName,
|
||||||
_In_ LPCWSTR lpAccount,
|
_In_opt_ LPCWSTR lpAccount,
|
||||||
_In_ LPCWSTR lpPassword,
|
_In_opt_ LPCWSTR lpPassword,
|
||||||
_In_ NETSETUP_NAME_TYPE NameType)
|
_In_ NETSETUP_NAME_TYPE NameType)
|
||||||
{
|
{
|
||||||
PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword;
|
PJOINPR_ENCRYPTED_USER_PASSWORD EncryptedPassword = NULL;
|
||||||
handle_t BindingHandle;
|
handle_t BindingHandle = NULL;
|
||||||
NET_API_STATUS status;
|
NET_API_STATUS status;
|
||||||
|
|
||||||
TRACE("NetValidateName(%s %s %s %s %u)\n",
|
TRACE("NetValidateName(%s %s %s %s %u)\n",
|
||||||
|
@ -706,8 +788,14 @@ NetValidateName(
|
||||||
debugstr_w(lpPassword), NameType);
|
debugstr_w(lpPassword), NameType);
|
||||||
|
|
||||||
/* FIXME */
|
/* FIXME */
|
||||||
BindingHandle = NULL;
|
|
||||||
EncryptedPassword = NULL;
|
status = NetpBind(lpServer,
|
||||||
|
&BindingHandle);
|
||||||
|
if (status != NERR_Success)
|
||||||
|
{
|
||||||
|
ERR("NetpBind() failed (status 0x%lx)\n", status);
|
||||||
|
return status;
|
||||||
|
}
|
||||||
|
|
||||||
RpcTryExcept
|
RpcTryExcept
|
||||||
{
|
{
|
||||||
|
@ -724,6 +812,8 @@ NetValidateName(
|
||||||
}
|
}
|
||||||
RpcEndExcept;
|
RpcEndExcept;
|
||||||
|
|
||||||
|
NetpUnbind(BindingHandle);
|
||||||
|
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue