Skip to content

Release Notes - 4.0.3

Compare
Choose a tag to compare
@dahall dahall released this 05 Aug 02:38
· 68 commits to master since this release

Additions

  • Added ACE_TYPE with full set of enums for AceType value in AdvApi32.ACE_HEADER and all associated structures. Added IAccessControlEntry interface to identify all ACE structures. Fixed SafePACL.Size and added SafePACL.Clone.
  • Added AdvApi32.AddAce overload with simplified params
  • Added EnumExtensions.ToEnum(byte[]) method to convert a byte array to an enum.
  • Added IDisposable back to AmsiStream
  • Added IEqualityComparer for PACE values
  • Added IObjectAccessControlEntry to identify object ACEs. Many enhancements to SafePACL to treat as IList and handle smarter ACE inserts.
  • Added PACE.GetAceStruct extension to get correct structure from pointer to an ACE. Updated other extension methods to use AsRef rather than ToStructure for efficiency.
  • Added SafeMemoryHandle.DangerousOverrideSize to let programs set the size, usually after default ctor is used as out param.
  • Added SequenceCompare extension method similar to SequenceEqual in Linq
  • Added ShellFolder.EnumerateChildIds to get PIDLs from folder
  • Added ShellLibrary internal ctor with IShellLibrary param
  • Added VisibleWindow.Children and AddChild operations and fixed Run methods to not be ambiguous and to only call CreateWindow when needed.
  • Added WlanGetNetworkBssList for issue #470
  • Added ability to read DLGTEMPLATE(EX) streams
  • Added additional Kernel32.ReadFile overload
  • Added constructors to AdvApi32.EXPLICIT_ACCESS
  • Added equality ops to SafePACL
  • Added implementation for SecurityInfoImpl for ISecurityInformation2 but it crashes, so kept code but commented out interface inheritance.
  • Added missing PowrProf.GUID_ENERGY_SAVER_STATUS value
  • Added missing SI_OBJECT_INFO_Flags values. Changed parameter types in ISecurityInformation from IntPtr to GuidPtr for better type safety and updated parameter names to match those in the MIDL definitions. Changed BOOL values to BOOLEAN in EFFPERM_RESULT_LIST and SECURITY_OBJECT. Changed to PSID field in SID_INFO.
  • Added type hints to AMSI_ATTRIBUTE

Fixes

  • Adjust VisibleWindow test to use new Run signature
  • Adjusted SafeMemoryHandle.Size setter so that it only fills in zeros if AllocZeros is true.
  • BREAKING CHANGE: Made IShellLibrary.LoadLibraryFromItem and LoadLibraryFromKnownFolder return HRESULT to avoid exceptions when using those functions to test IShellLibrary
  • Changed User32.EnumChildWindows overload to return IReadOnlyList instead of IList
  • FIxed first param of ISecurityObjectTypeInfo.GetInheritSource
  • Fixed alignment bug in DLGITEMTEMPLATEEX serialization
  • Fixed bug in AdvApi32.ConvertStringSecurityDescriptorToSecurityDescriptor override
  • Fixed bug in PACL.CompareTo(PACL)
  • Fixed bug introduced by removal of DEVICE_NOTIFY
  • Fixed bugs in SensorsApi interface definitions and added a few extension methods
  • Fixed bugs in User32.GetDialogBaseUnits and MapDialogRect definitions
  • Fixed definition of Shell32.SHFILEOPSTRUCT (#471)
  • Fixed many nullability errors in SensorsApi interfaces
  • Fixed structure bug in FwpUClnt.FWP_VALUE0 that caused #475 and added a GetValue method to easier extract the value.
  • Hopefully not a breaking change, but SafeMemoryHandle.Write overloads now return the number of bytes written.
  • In AdvApi32, added comparison and equality functions for PACE and PACL, improved accuracy of PACE.GetMask, PACE.GetSid methods, added PACE.IsAlarmAce and PACL.Revision extension methods.
  • Lots of fixes and enhancements to User32 Dialog box methods and structures.
  • Revamped AnsiStream implementation to handle streams rather than allocated memory.
  • Updated Kernel32.LocalMemoryMethods with locking methods and logic for using non-lockable memory in alloc.
  • Updated SafePSECURITY_DESCRIPTOR string ctor to be more efficient
  • Updated ShellItem.Open so that it doesn't throw exceptions and is a little more efficient. Should help #474
  • Updated User32.SIZES structure with ctor and conversion operators.
  • Updated declaration of ISecurityInformation2 and added SID_INFO_LIST struct to AclUI

Full Changelog: v4.0.2...v4.0.3