Brows.Sys.Win32 1.1.0

dotnet add package Brows.Sys.Win32 --version 1.1.0
                    
NuGet\Install-Package Brows.Sys.Win32 -Version 1.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Brows.Sys.Win32" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Brows.Sys.Win32" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Brows.Sys.Win32" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Brows.Sys.Win32 --version 1.1.0
                    
#r "nuget: Brows.Sys.Win32, 1.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Brows.Sys.Win32@1.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Brows.Sys.Win32&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Brows.Sys.Win32&version=1.1.0
                    
Install as a Cake Tool

Brows.Sys.Win32

The Windows backend for Brows system notifications. This package targets net10.0, references Brows.Sys, and is marked as supported on Windows. It declares selected device and clipboard APIs and contains an internal WM_DEVICECHANGE decoder.

Installation and integration

dotnet add package Brows.Sys.Win32

The native declarations and decoder are internal implementation details. This package does not expose a standalone public listener or public P/Invoke wrapper. Applications normally use Brows.Sys.Win32.Windows, which references this backend and installs hooks on WPF window sources. The backend itself does not register or hook a window.

Supported notifications

Native event Typed message
DBT_DEVNODES_CHANGED DeviceTreeChange
DBT_DEVICEARRIVAL DeviceArrival
DBT_DEVICEQUERYREMOVE DeviceRemovalRequest
DBT_DEVICEQUERYREMOVEFAILED DeviceRemovalFailed
DBT_DEVICEREMOVEPENDING DeviceRemovalPending
DBT_DEVICEREMOVECOMPLETE DeviceRemovalComplete

For DBT_DEVTYP_VOLUME payloads, the decoder:

  • Validates the declared header and volume-record sizes before reading the corresponding fields.
  • Creates one message per affected drive bit from A through Z.
  • Supplies a VolumeDevice whose VolumeName is the drive letter without a colon or trailing backslash.
  • Maps DBTF_MEDIA and DBTF_NET independently to VolumeFlag.Media and VolumeFlag.Network.

For DBT_DEVTYP_PORT, the decoder copies a bounded Unicode name into PortDevice.PortName. For DBT_DEVTYP_DEVICEINTERFACE, it copies the interface class GUID and bounded Unicode name into InterfaceDevice. Both payload types reuse all five change records.

DBT_DEVNODES_CHANGED is decoded before any pointer reads. It emits one DeviceTreeChange and does not identify an individual device.

Recognized OEM and handle events retain the null-device fallback. Undefined device types and unsupported event codes are ignored. Null/truncated payloads and names without a UTF-16 terminator inside the declared size are ignored; topology events need no payload. All identifiers are copied before publication.

Scope

The package does not currently publish file-system changes, Shell change notifications, or handle-specific device information. The Win32/PlatformInvoke/ folder contains selected native declarations. These do not provide public file-watching or clipboard-listening APIs.

The decoder checks the size advertised by the sender. It cannot establish that an arbitrary nonzero native pointer is readable; incoming message data must follow the native Windows contract. Native payloads are read synchronously so the returned managed records contain copied values.

This project also declares the Win32 clipboard-listener registration and sequence number functions. The WPF adapter performs registration and routes clipboard updates to the same public stream as device messages. Applications consume both through ISystemMessengerSet from Brows.Sys.Composition; there is no standalone public listener in this package.

License and source

MIT license. Source repository.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Brows.Sys.Win32:

Package Downloads
Brows.Sys.Win32.Windows

Package Description

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.1.0 89 10/8/2026
1.0.0 96 10/8/2026