static RPC_STATUS DsSetupBind( LPWSTR lpServerName, handle_t *hBinding) { LPWSTR pszStringBinding; RPC_STATUS status; TRACE("DsSetupBind() called\n"); *hBinding = NULL; status = RpcStringBindingComposeW(NULL, L"ncacn_np", lpServerName, L"\\pipe\\lsarpc", NULL, &pszStringBinding); if (status) { TRACE("RpcStringBindingCompose returned 0x%x\n", status); return status; } /* Set the binding handle that will be used to bind to the server. */ status = RpcBindingFromStringBindingW(pszStringBinding, hBinding); if (status) { TRACE("RpcBindingFromStringBinding returned 0x%x\n", status); } status = RpcStringFreeW(&pszStringBinding); if (status) { TRACE("RpcStringFree returned 0x%x\n", status); } return status; }
static IrotHandle get_irot_handle(void) { if (!irot_handle) { RPC_STATUS status; RPC_WSTR binding; IrotHandle new_handle; unsigned short ncacn_np[] = IROT_PROTSEQ; unsigned short endpoint[] = IROT_ENDPOINT; status = RpcStringBindingComposeW(NULL, ncacn_np, NULL, endpoint, NULL, &binding); if (status == RPC_S_OK) { status = RpcBindingFromStringBindingW(binding, &new_handle); RpcStringFreeW(&binding); } if (status != RPC_S_OK) return NULL; if (InterlockedCompareExchangePointer(&irot_handle, new_handle, NULL)) /* another thread beat us to it */ RpcBindingFree(&new_handle); } return irot_handle; }
handle_t __RPC_USER WKSSVC_IMPERSONATE_HANDLE_bind(WKSSVC_IMPERSONATE_HANDLE pszSystemName) { handle_t hBinding = NULL; LPWSTR pszStringBinding; RPC_STATUS status; TRACE("WKSSVC_IMPERSONATE_HANDLE_bind() called\n"); status = RpcStringBindingComposeW(NULL, L"ncacn_np", pszSystemName, L"\\pipe\\wkssvc", NULL, &pszStringBinding); if (status) { TRACE("RpcStringBindingCompose returned 0x%x\n", status); return NULL; } /* Set the binding handle that will be used to bind to the server. */ status = RpcBindingFromStringBindingW(pszStringBinding, &hBinding); if (status) { TRACE("RpcBindingFromStringBinding returned 0x%x\n", status); } status = RpcStringFreeW(&pszStringBinding); if (status) { // TRACE("RpcStringFree returned 0x%x\n", status); } return hBinding; }
handle_t __RPC_USER EVENTLOG_HANDLE_W_bind(EVENTLOG_HANDLE_W UNCServerName) { handle_t hBinding = NULL; LPWSTR pszStringBinding; RPC_STATUS status; TRACE("EVENTLOG_HANDLE_W_bind() called\n"); status = RpcStringBindingComposeW(NULL, L"ncacn_np", (LPWSTR)UNCServerName, L"\\pipe\\EventLog", NULL, &pszStringBinding); if (status) { ERR("RpcStringBindingCompose returned 0x%x\n", status); return NULL; } /* Set the binding handle that will be used to bind to the server. */ status = RpcBindingFromStringBindingW(pszStringBinding, &hBinding); if (status) { ERR("RpcBindingFromStringBinding returned 0x%x\n", status); } status = RpcStringFreeW(&pszStringBinding); if (status) { ERR("RpcStringFree returned 0x%x\n", status); } return hBinding; }
handle_t __RPC_USER PLSAPR_SERVER_NAME_bind(PLSAPR_SERVER_NAME pszSystemName) { handle_t hBinding = NULL; LPWSTR pszStringBinding; RPC_STATUS status; TRACE("PLSAPR_SERVER_NAME_bind() called\n"); status = RpcStringBindingComposeW(NULL, L"ncacn_np", pszSystemName, L"\\pipe\\lsarpc", NULL, &pszStringBinding); if (status) { TRACE("RpcStringBindingCompose returned 0x%x\n", status); return NULL; } /* Set the binding handle that will be used to bind to the server. */ status = RpcBindingFromStringBindingW(pszStringBinding, &hBinding); if (status) { TRACE("RpcBindingFromStringBinding returned 0x%x\n", status); } status = RpcStringFreeW(&pszStringBinding); if (status) { TRACE("RpcStringFree returned 0x%x\n", status); } return hBinding; }
handle_t __RPC_USER WLANSVC_HANDLE_bind(WLANSVC_HANDLE szMachineName) { handle_t hBinding = NULL; LPWSTR pszStringBinding; RPC_STATUS Status; TRACE("RPC_SERVICE_STATUS_HANDLE_bind() called\n"); Status = RpcStringBindingComposeW(NULL, L"ncalrpc", szMachineName, L"wlansvc", NULL, &pszStringBinding); if (Status != RPC_S_OK) { ERR("RpcStringBindingCompose returned 0x%x\n", Status); return NULL; } /* Set the binding handle that will be used to bind to the server. */ Status = RpcBindingFromStringBindingW(pszStringBinding, &hBinding); if (Status != RPC_S_OK) { ERR("RpcBindingFromStringBinding returned 0x%x\n", Status); } Status = RpcStringFreeW(&pszStringBinding); if (Status != RPC_S_OK) { ERR("RpcStringFree returned 0x%x\n", Status); } return hBinding; }
static RPC_STATUS ScCreateStatusBinding(VOID) { LPWSTR pszStringBinding; RPC_STATUS status; TRACE("ScCreateStatusBinding() called\n"); status = RpcStringBindingComposeW(NULL, L"ncacn_np", NULL, L"\\pipe\\ntsvcs", NULL, &pszStringBinding); if (status != RPC_S_OK) { ERR("RpcStringBindingCompose returned 0x%x\n", status); return status; } /* Set the binding handle that will be used to bind to the server. */ status = RpcBindingFromStringBindingW(pszStringBinding, &hStatusBinding); if (status != RPC_S_OK) { ERR("RpcBindingFromStringBinding returned 0x%x\n", status); } status = RpcStringFreeW(&pszStringBinding); if (status != RPC_S_OK) { ERR("RpcStringFree returned 0x%x\n", status); } return status; }