rbd-wnbd: optionally handle wnbd adapter restart events
The WNBD adapter may be reset in certain situations (e.g. driver
upgrade, MS WHQL tests, etc).
We're going to monitor the WNBD adapter using WMI[1] events, restarting
the rbd-wnbd disk mappings whenever necessary. Adapter monitoring can be
enabled by passing the --adapter-monitoring-enabled flag to the service.
This feature is optional for the following reasons:
* it's mainly used during development / driver certification
* we had to use a relatively small polling interval, which might imply
additional resource usage. WMI quotas also have to be considered.
While at it, we're updating two lambdas that are submitted to thread pools,
avoiding default reference capturing and explicitly specifying the variables
that get copied.
[1] https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page
Signed-off-by: Lucian Petrut <lpetrut@cloudbasesolutions.com>
(cherry picked from commit
0c25ca656430b4d5280ab7d033495ad8ce4e776c)