[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[RFC PATCH 0/5] Changes for Server 2025



When running Server 2025 WHQL testing, issues have been identified with driver
verifier registry isolation violations (verifier.exe /rc 33 36) which are 
enabled
by default on certain drivers (primarily XenVbd and XenNet). Running verifier
with these additional checks exposes issues with various drivers.

These checks enforce:
* ZwOpenKey and ZwCreateKey cannot use absolute registry paths
* Only IoOpenDriverRegistryKey and IoOpenDeviceRegistryKey are used to open
  registry keys
* Access permissions are restricted based on the key requested
  IoOpenDriverRegistryKey's ParametersKey is read only
  IoOpenDriverRegistryKey's PersistentState key is read/write
  IoOpenDeviceRegistryKey's keys are read only

These patches use IoOpenDriverRegistryKey to open the ParametersKey to query any
settings made by the INF file (or any manual configuration done after install),
and move any 'banned API usage' to xen.sys (as it appears WHQL testing does not
enable driver verifier on import drivers). The attempt to rename the device's
FriendlyName to improve Device Manager's readability is dropped, and UNPLUG v3
is introduced to trigger the request for reboot and determine if boot emulated 
was
requested.

There will need to be a related patch series for all other drivers, in order to
use the correct APIs to open the ParametersKey, and use UNPLUG v3 to request 
reboots
when needed. XenNet also has additional NDIS requirements for Server 2025 which
have not been fully explored (they look relatively minor changes)

Owen Smith (5):
  Add RegistryOpenParametersKey
  Move FiltersInstall/FiltersUninstall to xen.sys
  Remove FdoSetFriendlyName
  Move Registry operations to xen.sys
  Add UNPLUG v3

 include/revision.h            |   3 +-
 include/unplug_interface.h    |  40 ++-
 include/xen.h                 |  59 ++++
 src/common/registry.c         |  22 +-
 src/common/registry.h         |   9 +-
 src/xen/config.c              | 497 ++++++++++++++++++++++++++++++++++
 src/xen/driver.c              |   2 +-
 src/{xenbus => xen}/filters.c |   4 +
 src/{xenbus => xen}/filters.h |   0
 src/xenbus/driver.c           | 469 +-------------------------------
 src/xenbus/driver.h           |  30 --
 src/xenbus/fdo.c              |  99 +------
 src/xenbus/unplug.c           |  86 ++++++
 src/xenfilt/driver.c          |  33 +--
 vs2019/xen/xen.vcxproj        |   2 +
 vs2019/xenbus/xenbus.vcxproj  |   1 -
 vs2022/xen/xen.vcxproj        |   2 +
 vs2022/xenbus/xenbus.vcxproj  |   1 -
 18 files changed, 733 insertions(+), 626 deletions(-)
 create mode 100644 src/xen/config.c
 rename src/{xenbus => xen}/filters.c (99%)
 rename src/{xenbus => xen}/filters.h (100%)

-- 
2.44.0.windows.1




 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.