/// <summary>
        /// Returns the state of Focus Assist if available on this computer. Returns <see cref="FocusAssistState.FAILED"/> otherwise.
        /// </summary>
        /// <returns></returns>
        public static FocusAssistState GetFocusAssistState()
        {
            try
            {
                //  Focus Assist:   Windows 10 build >= 17083
                WNF_STATE_NAME WNF_SHEL_QUIETHOURS_ACTIVE_PROFILE_CHANGED = new WNF_STATE_NAME(0xA3BF1C75, 0xD83063E);
                uint           nBufferSize = (uint)Marshal.SizeOf(typeof(IntPtr));
                IntPtr         pStateName  = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(WNF_STATE_NAME)));
                Marshal.StructureToPtr(WNF_SHEL_QUIETHOURS_ACTIVE_PROFILE_CHANGED, pStateName, false);
                bool success = NtQueryWnfStateData(pStateName, IntPtr.Zero, IntPtr.Zero, out uint nChangeStamp, out IntPtr pBuffer, ref nBufferSize) == 0;
                Marshal.FreeHGlobal(pStateName);
                if (success)
                {
                    return((FocusAssistState)pBuffer);
                }
            }
            catch { }

            return(FocusAssistState.FAILED);
        }
 internal static extern int NtQueryWnfStateData([In] ref WNF_STATE_NAME StateName, IntPtr TypeId, IntPtr ExplicitScope, out uint ChangeStamp, [Out] IntPtr Buffer, ref uint BufferSize);
 //internal static extern int NtUpdateWnfStateData(ref WNF_STATE_NAME StateName, IntPtr Buffer, uint Length, ref WNF_TYPE_ID TypeId, IntPtr ExplicitScope, uint MatchingChangeStamp, uint CheckStamp);
 internal static extern int NtUpdateWnfStateData(ref WNF_STATE_NAME StateName, IntPtr Buffer, uint Length, IntPtr TypeId, IntPtr ExplicitScope, uint MatchingChangeStamp, uint CheckStamp);