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
<PackageReference Include="Brows.Sys.Win32" Version="1.1.0" />
<PackageVersion Include="Brows.Sys.Win32" Version="1.1.0" />
<PackageReference Include="Brows.Sys.Win32" />
paket add Brows.Sys.Win32 --version 1.1.0
#r "nuget: Brows.Sys.Win32, 1.1.0"
#:package Brows.Sys.Win32@1.1.0
#addin nuget:?package=Brows.Sys.Win32&version=1.1.0
#tool nuget:?package=Brows.Sys.Win32&version=1.1.0
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
VolumeDevicewhoseVolumeNameis the drive letter without a colon or trailing backslash. - Maps
DBTF_MEDIAandDBTF_NETindependently toVolumeFlag.MediaandVolumeFlag.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
| Product | Versions 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. |
-
net10.0
- Brows.Sys (>= 1.1.0)
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.