/// <summary> /// Copies a memory block from one location to another. /// </summary> /// <param name="destination">A pointer to the starting address of the move destination.</param> /// <param name="source">A pointer to the starting address of the block of memory to be moved.</param> /// <param name="length">The size of the memory block to move, in bytes.</param> public void CopyMemoryImpl(IntPtr destination, IntPtr source, IntPtr length) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent("kernel32.dll", "CopyMemory"); evt.Data.Add("destination", destination); evt.Data.Add("source", source); evt.Data.Add("length", length); try { UnsafeNativeMethods.CopyMemory(destination, source, length); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } }
/// <summary> /// Allocates a new locally unique identifier. /// </summary> /// <param name="pLuid">Pointer to a <see cref="DotRas.Luid"/> structure that upon return, receives the generated LUID instance.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int AllocateLocallyUniqueIdImpl(IntPtr pLuid) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.AdvApi32Dll, "AllocateLocallyUniqueId"); evt.Data.Add("pLuid", pLuid); int retval = 0; try { bool ret = SafeNativeMethods.AllocateLocallyUniqueId(pLuid); if (!ret) { retval = Marshal.GetLastWin32Error(); evt.ResultCode = retval; } } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return retval; }
/// <summary> /// Retrieves information on the current status of the specified remote access connection handle. /// </summary> /// <param name="handle">The handle to check.</param> /// <param name="connectionStatus">Pointer to a <see cref="NativeMethods.RASCONNSTATUS"/> structure that upon return contains the status information for the handle specified by <paramref name="handle"/>.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetConnectStatus(RasHandle handle, IntPtr connectionStatus) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetConnectStatus"); evt.Data.Add("handle", handle); evt.Data.Add("connectionStatus", connectionStatus); int result = 0; try { result = SafeNativeMethods.RasGetConnectStatus(handle, connectionStatus); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Store user-specific Extensible Authentication Protocol (EAP) information for the specified phone book entry in the registry. /// </summary> /// <param name="handle">The handle to a primary or impersonation access token.</param> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference (<b>Nothing</b> in Visual Basic), the default phone book is used.</param> /// <param name="entryName">The entry name to validate.</param> /// <param name="eapData">Pointer to a buffer that receives the retrieved EAP data for the user.</param> /// <param name="sizeOfEapData">On input specifies the size in bytes of the buffer pointed to by <paramref name="eapData"/>, upon output receives the size of the buffer needed to contain the EAP data.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int SetEapUserData(IntPtr handle, string phoneBookPath, string entryName, IntPtr eapData, int sizeOfEapData) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasSetEapUserData"); evt.Data.Add("handle", handle); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("eapData", eapData); evt.Data.Add("sizeOfEapData", sizeOfEapData); int result = 0; try { result = UnsafeNativeMethods.RasSetEapUserData(handle, phoneBookPath, entryName, eapData, sizeOfEapData); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Sets the value of an AutoDial parameter. /// </summary> /// <param name="key">The parameter whose value to set.</param> /// <param name="value">A pointer containing the new value of the parameter.</param> /// <param name="bufferSize">The size of the buffer.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int SetAutodialParam(NativeMethods.RASADP key, IntPtr value, int bufferSize) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasSetAutodialParam"); evt.Data.Add("key", key); evt.Data.Add("value", value); evt.Data.Add("bufferSize", bufferSize); int result = 0; try { result = UnsafeNativeMethods.RasSetAutodialParam(key, value, bufferSize); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Updates an address in the AutoDial mapping database. /// </summary> /// <param name="address">The address for which information is being updated.</param> /// <param name="reserved">Reserved. This value must be zero.</param> /// <param name="addresses">Pointer to an array of <see cref="NativeMethods.RASAUTODIALENTRY"/> structures.</param> /// <param name="bufferSize">Upon return, contains the size in bytes of the buffer specified by <paramref name="addresses"/>. Upon return contains the number of bytes required to successfully complete the call.</param> /// <param name="count">Upon return, contains the number of phone book entries written to the buffer specified by <paramref name="addresses"/>.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int SetAutodialAddress(string address, int reserved, IntPtr addresses, int bufferSize, int count) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasSetAutodialAddress"); evt.Data.Add("address", address); evt.Data.Add("reserved", reserved); evt.Data.Add("addresses", addresses); evt.Data.Add("bufferSize", bufferSize); evt.Data.Add("count", count); int result = 0; try { result = UnsafeNativeMethods.RasSetAutodialAddress(address, reserved, addresses, bufferSize, count); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Displays the main dial-up networking dialog box. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference, the default phone book is used.</param> /// <param name="entryName">The name of the phone book entry to initially highlight.</param> /// <param name="info">An <see cref="NativeMethods.RASPBDLG"/> structure containing additional input/output parameters.</param> /// <returns><b>true</b> if the user dials an entry successfully, otherwise <b>false</b>.</returns> public bool PhonebookDlg(string phoneBookPath, string entryName, ref NativeMethods.RASPBDLG info) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasPhonebookDlg"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("info", info); bool result = false; try { result = UnsafeNativeMethods.RasPhonebookDlg(phoneBookPath, entryName, ref info); evt.ResultCode = result ? 1 : 0; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves the value of an AutoDial parameter. /// </summary> /// <param name="value">An <see cref="RasGetAutodialParamParams"/> containing call data.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetAutodialParam(RasGetAutodialParamParams value) { if (value == null) { ThrowHelper.ThrowArgumentNullException("value"); } int bufferSize = value.BufferSize; PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetAutodialParam"); evt.Data.Add("key", value.Key); evt.Data.Add("address", value.Address); evt.Data.Add("bufferSize-IN", bufferSize); int result = 0; try { result = UnsafeNativeMethods.RasGetAutodialParam(value.Key, value.Address, ref bufferSize); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); value.BufferSize = bufferSize; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves a connection handle for a subentry of a multilink connection. /// </summary> /// <param name="handle">The handle to the connection.</param> /// <param name="subEntryId">The one-based index of the subentry to whose handle to retrieve.</param> /// <param name="result">Upon return, contains the handle to the subentry connection.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetSubEntryHandle(RasHandle handle, int subEntryId, out IntPtr result) { result = IntPtr.Zero; PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetSubEntryHandle"); evt.Data.Add("handle", handle); evt.Data.Add("subEntryId", subEntryId); evt.Data.Add("result-IN", result); int ret = 0; try { ret = SafeNativeMethods.RasGetSubEntryHandle(handle, subEntryId, out result); evt.ResultCode = ret; evt.Data.Add("result-OUT", result); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return ret; }
/// <summary> /// Obtains information about a remote access projection operation for all RAS connections on the local client. /// </summary> /// <param name="handle">The handle to the connection.</param> /// <param name="projection">Pointer to a <see cref="NativeMethods.RAS_PROJECTION_INFO"/> structure that receives the projection information for the RAS connections.</param> /// <param name="bufferSize">On input specifies the size in bytes of the buffer pointed to by <paramref name="projection"/>, upon output receives the size of the buffer needed to contain the projection information.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetProjectionInfoEx(RasHandle handle, IntPtr projection, ref IntPtr bufferSize) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetProjectionInfoEx"); evt.Data.Add("handle", handle); evt.Data.Add("projection", projection); evt.Data.Add("bufferSize-IN", bufferSize); int result = 0; try { result = SafeNativeMethods.RasGetProjectionInfoEx(handle, projection, ref bufferSize); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves accumulated statistics for the specified link in a RAS multilink connection. /// </summary> /// <param name="handle">The handle to the connection.</param> /// <param name="subEntryId">The subentry index that corresponds to the link for which to retrieve statistics.</param> /// <param name="statistics">Pointer to a <see cref="NativeMethods.RAS_STATS"/> structure which will receive the statistics.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetLinkStatistics(RasHandle handle, int subEntryId, IntPtr statistics) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetLinkStatistics"); evt.Data.Add("handle", handle); evt.Data.Add("subEntryId", subEntryId); evt.Data.Add("statistics", statistics); int result = 0; try { result = SafeNativeMethods.RasGetLinkStatistics(handle, subEntryId, statistics); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Returns an error message string for a specified RAS error value. /// </summary> /// <param name="errorCode">The error value of interest.</param> /// <param name="result">Required. The buffer that will receive the error string.</param> /// <param name="bufferSize">Specifies the size, in characters, of the buffer pointed to by <paramref name="result"/>.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetErrorString(int errorCode, string result, int bufferSize) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetErrorString"); evt.Data.Add("errorCode", errorCode); evt.Data.Add("result", result); evt.Data.Add("bufferSize", bufferSize); int ret = 0; try { ret = SafeNativeMethods.RasGetErrorString(errorCode, result, bufferSize); evt.ResultCode = ret; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return ret; }
/// <summary> /// Retrieves Extensible Authentication Protocol (EAP) identity information for the current user. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference, the default phone book is used.</param> /// <param name="entryName">The name of an existing entry within the phone book.</param> /// <param name="flags">Specifies any flags that qualify the authentication process.</param> /// <param name="hwnd">Handle to the parent window for the UI dialog.</param> /// <param name="identity">Pointer to a buffer that upon return contains the EAP user identity information.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetEapUserIdentity(string phoneBookPath, string entryName, NativeMethods.RASEAPF flags, IntPtr hwnd, ref IntPtr identity) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetEapUserIdentity"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("flags", flags); evt.Data.Add("hwnd", hwnd); evt.Data.Add("identity-IN", identity); int result = 0; try { result = SafeNativeMethods.RasGetEapUserIdentity(phoneBookPath, entryName, flags, hwnd, ref identity); evt.ResultCode = result; evt.Data.Add("identity-OUT", identity); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves user-specific Extensible Authentication Protocol (EAP) information for the specified phone book entry. /// </summary> /// <param name="value">An <see cref="RasGetEapUserDataParams"/> containing call data.</param> /// <returns>If the function succeeds, the return value is zero.</returns> /// <exception cref="System.ArgumentNullException"><paramref name="value"/> is a null reference (<b>Nothing</b> in Visual Basic).</exception> public int GetEapUserData(RasGetEapUserDataParams value) { if (value == null) { ThrowHelper.ThrowArgumentNullException("value"); } IntPtr bufferSize = value.BufferSize; PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetEapUserData"); evt.Data.Add("userToken", value.UserToken); evt.Data.Add("phoneBookPath", value.PhoneBookPath); evt.Data.Add("entryName", value.EntryName); evt.Data.Add("address", value.Address); evt.Data.Add("bufferSize-IN", bufferSize); int result = 0; try { result = SafeNativeMethods.RasGetEapUserData(value.UserToken, value.PhoneBookPath, value.EntryName, value.Address, ref bufferSize); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); value.BufferSize = bufferSize; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves country/region specific dialing information from the Windows telephony list of countries/regions. /// </summary> /// <param name="countries">Pointer to a <see cref="NativeMethods.RASCTRYINFO"/> structure that upon output receives the country/region dialing information.</param> /// <param name="bufferSize">Pointer to a variable that, on input, specifies the size, in bytes, of the buffer pointed to by <paramref name="countries"/>.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetCountryInfo(IntPtr countries, ref IntPtr bufferSize) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetCountryInfo"); evt.Data.Add("countries", countries); evt.Data.Add("bufferSize-IN", bufferSize); int result = 0; try { result = SafeNativeMethods.RasGetCountryInfo(countries, ref bufferSize); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves information about the entries associated with a network address in the AutoDial mapping database. /// </summary> /// <param name="value">An <see cref="RasGetAutodialAddressParams"/> containing call data.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetAutodialAddress(RasGetAutodialAddressParams value) { if (value == null) { ThrowHelper.ThrowArgumentNullException("value"); } IntPtr bufferSize = value.BufferSize; IntPtr count = value.Count; PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetAutodialAddress"); evt.Data.Add("autodialAddress", value.AutodialAddress); evt.Data.Add("reserved", value.Reserved); evt.Data.Add("address", value.Address); evt.Data.Add("bufferSize-IN", bufferSize); evt.Data.Add("count-IN", count); int result = 0; try { result = UnsafeNativeMethods.RasGetAutodialAddress(value.AutodialAddress, value.Reserved, value.Address, ref bufferSize, ref count); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); evt.Data.Add("count-OUT", count); value.BufferSize = bufferSize; value.Count = count; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Indicates whether the AutoDial feature is enabled for a specific TAPI dialing location. /// </summary> /// <param name="value">An <see cref="RasGetAutodialEnableParams"/> containing call data.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetAutodialEnable(RasGetAutodialEnableParams value) { if (value == null) { ThrowHelper.ThrowArgumentNullException("value"); } bool enabled = value.Enabled; PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetAutodialEnable"); evt.Data.Add("enabled-IN", enabled); int result = 0; try { result = UnsafeNativeMethods.RasGetAutodialEnable(value.DialingLocation, ref enabled); evt.ResultCode = result; evt.Data.Add("enabled-OUT", enabled); value.Enabled = enabled; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Terminates a remote access connection. /// </summary> /// <param name="handle">The handle to terminate.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int HangUp(RasHandle handle) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasHangUp"); evt.Data.Add("handle", handle); int result = 0; try { result = SafeNativeMethods.RasHangUp(handle); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Retrieves information for an existing phone book entry. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference (<b>Nothing</b> in Visual Basic), the default phone book is used.</param> /// <param name="entryName">The name of an existing entry within the phone book.</param> /// <param name="entry">Pointer to a buffer that, upon return, contains a <see cref="NativeMethods.RASENTRY"/> structure containing entry information.</param> /// <param name="bufferSize">Specifies the size of the <paramref name="entry"/> buffer.</param> /// <param name="deviceInfo">The parameter is not used.</param> /// <param name="deviceInfoSize">The parameter is not used.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int GetEntryProperties(string phoneBookPath, string entryName, IntPtr entry, ref IntPtr bufferSize, IntPtr deviceInfo, IntPtr deviceInfoSize) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasGetEntryProperties"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("entry", entry); evt.Data.Add("bufferSize-IN", bufferSize); evt.Data.Add("deviceInfo", deviceInfo); evt.Data.Add("deviceInfoSize", deviceInfoSize); int result = 0; try { result = UnsafeNativeMethods.RasGetEntryProperties(phoneBookPath, entryName, entry, ref bufferSize, deviceInfo, deviceInfoSize); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Creates and displays a configurable dialog box that accepts credentials from a user. /// </summary> /// <param name="uiInfo">Pointer to a <see cref="NativeMethods.CREDUI_INFO"/> structure that contains information for customizing the appearance of the dialog box.</param> /// <param name="targetName">The name of the target for the credentials.</param> /// <param name="reserved">Reserved for future use.</param> /// <param name="authError">Specifies why the credential dialog box is needed.</param> /// <param name="userName">A string that contains the username for the credentials.</param> /// <param name="userNameMaxChars">The maximum number of characters that can be copied to <paramref name="userName"/> including the terminating null character.</param> /// <param name="password">A string that contains the password for the credentials.</param> /// <param name="passwordMaxChars">The maximum number of characters that can be copied to <paramref name="password"/> including the terminating null character.</param> /// <param name="saveChecked">Specifies the initial state of the save checkbox and receives the state of the save checkbox after the user has responded to the dialog.</param> /// <param name="flags">Specifies special behavior for this function.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int PromptForCredentials(IntPtr uiInfo, string targetName, IntPtr reserved, int authError, StringBuilder userName, int userNameMaxChars, StringBuilder password, int passwordMaxChars, ref bool saveChecked, NativeMethods.CREDUI_FLAGS flags) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.CredUIDll, "CredUIPromptForCredentials"); evt.Data.Add("uiInfo", uiInfo); evt.Data.Add("targetName", targetName); evt.Data.Add("reserved", reserved); evt.Data.Add("authError", authError); evt.Data.Add("userName", userName); evt.Data.Add("userNameMaxChars", userNameMaxChars); evt.Data.Add("password", "********"); evt.Data.Add("passwordMaxChars", passwordMaxChars); evt.Data.Add("saveChecked-IN", saveChecked); evt.Data.Add("flags", flags); int result = 0; try { result = SafeNativeMethods.CredUIPromptForCredentials(uiInfo, targetName, reserved, authError, userName, userNameMaxChars, password, passwordMaxChars, ref saveChecked, flags); evt.ResultCode = result; evt.Data.Add("saveChecked-OUT", saveChecked); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Renames an existing entry in a phone book. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book. If this parameter is a null reference (<b>Nothing</b> in Visual Basic), the default phone book is used.</param> /// <param name="oldEntryName">The name of the entry to rename.</param> /// <param name="newEntryName">The new name of the entry.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int RenameEntry(string phoneBookPath, string oldEntryName, string newEntryName) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasRenameEntry"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("oldEntryName", oldEntryName); evt.Data.Add("newEntryName", newEntryName); int result = 0; try { result = UnsafeNativeMethods.RasRenameEntry(phoneBookPath, oldEntryName, newEntryName); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Specifies an event object that the system sets to the signaled state when a RAS connection changes. /// </summary> /// <param name="handle">The handle to the connection.</param> /// <param name="eventHandle">The handle of an event object.</param> /// <param name="flags">Specifies the RAS event that causes the system to signal the event specified by the <paramref name="eventHandle"/> parameter.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int RegisterConnectionNotification(RasHandle handle, SafeHandle eventHandle, NativeMethods.RASCN flags) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasConnectionNotification"); evt.Data.Add("handle", handle); evt.Data.Add("eventHandle", eventHandle); evt.Data.Add("flags", flags); int result = 0; try { result = SafeNativeMethods.RasConnectionNotification(handle, eventHandle, flags); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Enables or disables the AutoDial feature for a specific TAPI dialing location. /// </summary> /// <param name="dialingLocation">The TAPI dialing location to update.</param> /// <param name="enabled"><b>true</b> to enable the AutoDial feature, otherwise <b>false</b> to disable it.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int SetAutodialEnable(int dialingLocation, bool enabled) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasSetAutodialEnable"); evt.Data.Add("dialingLocation", dialingLocation); evt.Data.Add("enabled", enabled); int result = 0; try { result = UnsafeNativeMethods.RasSetAutodialEnable(dialingLocation, enabled); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Indicates whether the entry name is valid for the phone book specified. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference (<b>Nothing</b> in Visual Basic), the default phone book is used.</param> /// <param name="entryName">The entry name to validate.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int ValidateEntryName(string phoneBookPath, string entryName) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasValidateEntryName"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); int result = 0; try { result = SafeNativeMethods.RasValidateEntryName(phoneBookPath, entryName); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Sets the user credentials for a phone book entry. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book. If this parameter is a null reference (<b>Nothing</b> in Visual Basic), the default phone book is used.</param> /// <param name="entryName">The name of the entry whose credentials to set.</param> /// <param name="credentials">Pointer to an <see cref="NativeMethods.RASCREDENTIALS"/> object containing user credentials.</param> /// <param name="clearCredentials"><b>true</b> clears existing credentials by setting them to an empty string, otherwise <b>false</b>.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int SetCredentials(string phoneBookPath, string entryName, IntPtr credentials, bool clearCredentials) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasSetCredentials"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("credentials", credentials); evt.Data.Add("clearCredentials", clearCredentials); int result = 0; try { result = UnsafeNativeMethods.RasSetCredentials(phoneBookPath, entryName, credentials, clearCredentials); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Deletes a subentry from the specified phone book entry. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference, the default phone book is used.</param> /// <param name="entryName">The name of the entry to be deleted.</param> /// <param name="subEntryId">The one-based index of the subentry to delete.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int DeleteSubEntry(string phoneBookPath, string entryName, int subEntryId) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasDeleteSubEntry"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("subEntryId", subEntryId); int result = 0; try { result = UnsafeNativeMethods.RasDeleteSubEntry(phoneBookPath, entryName, subEntryId); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Sets the subentry connection information of a specified phone book entry. /// </summary> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference (<b>Nothing</b> in Visual Basic), the default phone book is used.</param> /// <param name="entryName">The name of an existing entry within the phone book.</param> /// <param name="index">The one-based index of the subentry to set.</param> /// <param name="subentry">Pointer to a buffer that, upon return, contains a <see cref="NativeMethods.RASSUBENTRY"/> structure containing subentry information.</param> /// <param name="bufferSize">Specifies the size of the <paramref name="subentry"/> buffer.</param> /// <param name="deviceConfig">The parameter is not used.</param> /// <param name="deviceConfigSize">The parameter is not used.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int SetSubEntryProperties(string phoneBookPath, string entryName, int index, IntPtr subentry, int bufferSize, IntPtr deviceConfig, int deviceConfigSize) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasSetSubEntryProperties"); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("index", index); evt.Data.Add("subentry", subentry); evt.Data.Add("bufferSize", bufferSize); evt.Data.Add("deviceConfig", deviceConfig); evt.Data.Add("deviceConfigSize", deviceConfigSize); int result = 0; try { result = UnsafeNativeMethods.RasSetSubEntryProperties(phoneBookPath, entryName, index, subentry, bufferSize, deviceConfig, deviceConfigSize); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Lists all entry names in a remote access phone-book. /// </summary> /// <param name="reserved">Reserved; this parameter must be a null reference.</param> /// <param name="phoneBookPath">The full path and filename of a phone book file. If this parameter is a null reference, the default phone book is used.</param> /// <param name="entryName">Pointer to a buffer that, on output, receives an array of <see cref="NativeMethods.RASENTRYNAME"/> structures.</param> /// <param name="bufferSize">Upon return, contains the size in bytes of the buffer specified by <paramref name="entryName"/>. Upon return contains the number of bytes required to successfully complete the call.</param> /// <param name="count">Upon return, contains the number of phone book entries written to the buffer specified by <paramref name="entryName"/>.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int EnumEntries(IntPtr reserved, string phoneBookPath, IntPtr entryName, ref IntPtr bufferSize, ref IntPtr count) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasEnumEntries"); evt.Data.Add("reserved", reserved); evt.Data.Add("phoneBookPath", phoneBookPath); evt.Data.Add("entryName", entryName); evt.Data.Add("bufferSize-IN", bufferSize); evt.Data.Add("count-IN", count); int result = 0; try { result = UnsafeNativeMethods.RasEnumEntries(reserved, phoneBookPath, entryName, ref bufferSize, ref count); evt.ResultCode = result; evt.Data.Add("bufferSize-OUT", bufferSize); evt.Data.Add("count-OUT", count); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Updates the tunnel endpoints of an Internet Key Exchange (IKEv2) connection. /// </summary> /// <param name="handle">The handle to the connection.</param> /// <param name="updateData">Pointer to a <see cref="NativeMethods.RASUPDATECONN"/> structure that contains the new tunnel endpoints for the connection.</param> /// <returns>If the function succeeds, the return value is zero.</returns> public int UpdateConnection(RasHandle handle, IntPtr updateData) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasUpdateConnection"); evt.Data.Add("handle", handle); evt.Data.Add("updateData", updateData); int result = 0; try { result = UnsafeNativeMethods.RasUpdateConnection(handle, updateData); evt.ResultCode = result; } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } return result; }
/// <summary> /// Frees the memory buffer returned by the <see cref="SafeNativeMethods.RasGetEapUserIdentity"/> method. /// </summary> /// <param name="identity">Pointer to the <see cref="NativeMethods.RASEAPUSERIDENTITY"/> structure.</param> public void FreeEapUserIdentity(IntPtr identity) { PInvokeCallTraceEvent evt = new PInvokeCallTraceEvent(NativeMethods.RasApi32Dll, "RasFreeEapUserIdentity"); evt.Data.Add("identity", identity); try { SafeNativeMethods.RasFreeEapUserIdentity(identity); } finally { DiagnosticTrace.Default.TraceEvent(TraceEventType.Verbose, evt); } }