<?xml version="1.0" encoding="utf-8"?>
<Rule Name="KernelModeDriver" PageTemplate="tool" Order="32" DisplayName="Driver Settings" xmlns="http://schemas.microsoft.com/build/2009/properties" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sys="clr-namespace:System;assembly=mscorlib">
  <Rule.Categories>
    <Category Name="DriverModel" DisplayName="Driver Model" />
    <Category Name="NetAdapter" DisplayName="Network Adapter Driver" />
    <Category Name="MBB" DisplayName="Mobile Broadband Adapter Driver" />
    <Category Name="SPB" DisplayName="SPB (Serial Peripheral Bus) Driver" />
    <Category Name="UCM" DisplayName="USB Connector Manager" />
    <Category Name="URS" DisplayName="USB Role Switch Driver" />
    <Category Name="UDE" DisplayName="USB Device Emulation" />
    <Category Name="UCMTCPCI" DisplayName="USB Type-C Port Controller Interface" />
    <Category Name="WIFI" DisplayName="Wi-Fi Adapter Driver" />
  </Rule.Categories>
  <Rule.DataSource>
    <DataSource Persistence="ProjectFile" Label="Configuration" HasConfigurationCondition="true" />
  </Rule.DataSource>
  <EnumProperty Name="DriverType" DisplayName="Type of driver" Description="Specific type of driver that will be created" Category="DriverModel" F1Keyword="driver.drivermodelsettings.properties">
    <EnumValue Name="WDM" DisplayName="WDM" Description="A WDM driver (including all miniport/port drivers like NDIS, StorPort, etc)">
    </EnumValue>
    <EnumValue Name="KMDF" DisplayName="KMDF" Description="A KMDF driver">
    </EnumValue>
    <EnumValue Name="ExportDriver" DisplayName="Export driver (WDM)" Description="A WDM driver which exports functions which other drivers can call">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="KMDF_VERSION_MAJOR" DisplayName="KMDF Version Major" Description="Major Version of KMDF that will be used when compiling your driver" Category="DriverModel" F1Keyword="driver.drivermodelsettings.properties">
    <EnumValue Name="1">
    </EnumValue>
  </EnumProperty>
  <EnumProperty Name="KMDF_VERSION_MINOR" DisplayName="KMDF Version Minor (Target Version)" Description="Minor Version of KMDF that will be used when compiling your driver" Category="DriverModel" F1Keyword="driver.drivermodelsettings.properties">
    <EnumValue Name="33" />
    <EnumValue Name="31" />
    <EnumValue Name="27" />
    <EnumValue Name="25" />
    <EnumValue Name="23" />
    <EnumValue Name="21" />
    <EnumValue Name="19" />
    <EnumValue Name="17" />
    <EnumValue Name="15" />
  </EnumProperty>
  <EnumProperty Name="KMDF_MINIMUM_VERSION_REQUIRED" DisplayName="KMDF Version Minor (Minimum Required)" Description="Minimum Required Version of KMDF that is required to load your driver (Win10 RS4 and later)" Category="DriverModel" F1Keyword="driver.drivermodelsettings.properties">
    <EnumValue Name="33" />
    <EnumValue Name="31" />
    <EnumValue Name="27" />
    <EnumValue Name="25" />
  </EnumProperty>
  <EnumProperty Name="ALLOW_DATE_TIME" DisplayName="Allow Date, Time, and Timestamp" Description="Defines standard C/CPP macros __DATE__, __TIME__, __TIMESTAMP__" Category="DriverModel" F1Keyword="driver.drivermodelsettings.properties">
    <EnumValue Name="1" DisplayName="Yes">
    </EnumValue>
    <EnumValue Name="0" DisplayName="No">
    </EnumValue>
  </EnumProperty>
  <BoolProperty Name="OverrideTargetVersionDefines" DisplayName="Override Target Configuration Preprocessor Definitions" Description="Overrides the default values for preprocessing symbols:_WIN32_WINNT, WINVER, WINNT and NTDDI_VERSION for your source file. Note the default values are controlled by the current target configuration." Category="DriverModel" F1Keyword="driver.drivermodelsettings.properties" />
  <!-- NetAdapter -->
  <BoolProperty Name="NetAdapterDriver" DisplayName="Link to the Network Adapter Class Extension" Description="Indicates whether the driver uses the Network Adapter Class Extension." Category="NetAdapter" />
  <EnumProperty Name="NETADAPTER_VERSION_MAJOR" DisplayName="Network Adapter Major Version" Description="Major version of Network Adapter Class Extension that will be used when building your driver" Category="NetAdapter" >
    <EnumValue Name="2" />
  </EnumProperty>
  <EnumProperty Name="NETADAPTER_VERSION_MINOR" DisplayName="Network Adapter Minor Version" Description="Minor version of Network Adapter Class Extension that will be used when building your driver" Category="NetAdapter" >
    <EnumValue Name="0" />
    <EnumValue Name="1" />
    <EnumValue Name="2" />
    <EnumValue Name="3" />
    <EnumValue Name="4" />
  </EnumProperty>
  <EnumProperty Name="NETADAPTER_MINIMUM_VERSION_REQUIRED" DisplayName="Network Adapter Minor Version (Minimum Required)" Description="Minimum Required Version of Network Adapter Class Extension that is required to load your driver" Category="NetAdapter" >
    <EnumValue Name="4" />
  </EnumProperty>
  <!-- End NetAdapter -->
  <!-- MBB -->
  <BoolProperty Name="MbbDriver" DisplayName="Link to the Mobile Broadband Adapter Class Extension" Description="Indicates whether the driver uses the Mobile Broadband Adapter Class Extension. The MBB Class Extension API may be changed and drivers using the preview version will not receive WHQL certification." Category="MBB" />
  <EnumProperty Name="MBB_VERSION_MAJOR" DisplayName="MBB Major Version" Description="Major version of Mobile Broadband Adapter Class Extension that will be used when compiling your driver" Category="MBB" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="MBB_VERSION_MINOR" DisplayName="MBB Minor Version" Description="Minor version of Mobile Broadband Adapter Class Extension that will be used when compiling your driver" Category="MBB" >
    <EnumValue Name="0" DisplayName="0 (Preview)" />
  </EnumProperty>
  <!-- End MBB-->
  <!-- SPB -->
  <BoolProperty Name="SpbDriver" DisplayName="Link to the Serial Peripheral Bus Class Extension" Description="Indicates whether the driver uses the Serial Peripheral Bus Class Extension" Category="SPB" />
  <EnumProperty Name="SPB_VERSION_MAJOR" DisplayName="SPB Major Version" Description="Major version of Serial Peripheral Bus Class Extension that will be used when compiling your driver" Category="SPB" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="SPB_VERSION_MINOR" DisplayName="SPB Minor Version" Description="Minor version of Serial Peripheral Bus Class Extension that will be used when compiling your driver" Category="SPB" >
    <EnumValue Name="0" />
    <EnumValue Name="1" />
  </EnumProperty>
  <!-- End SPB -->
  <!-- UCM -->
  <BoolProperty Name="UcmDriver" DisplayName="Link to the USB Connector Manager Class Extension" Description="Indicates whether the driver uses the USB Connector Manager Class Extension" Category="UCM" />
  <EnumProperty Name="UCM_VERSION_MAJOR" DisplayName="UCM Major Version" Description="Major version of USB Connector Manager Class Extension that will be used when compiling your driver" Category="UCM" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="UCM_VERSION_MINOR" DisplayName="UCM Minor Version" Description="Minor version of USB Connector Manager Class Extension that will be used when compiling your driver" Category="UCM" >
    <EnumValue Name="0" />
  </EnumProperty>
  <!-- End UCM -->
  <!-- UCM-TCPCI -->
  <BoolProperty Name="UcmTcpciDriver" DisplayName="Link to the USB Type-C Port Controller Interface Class Extension" Description="Indicates whether the driver uses the USB Type-C Port Controller Interface Class Extension" Category="UCMTCPCI" />
  <EnumProperty Name="UCMTCPCI_VERSION_MAJOR" DisplayName="UCM-TCPCI Major Version" Description="Major version of USB Type-C Port Controller Interface Class Extension that will be used when compiling your driver" Category="UCMTCPCI" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="UCMTCPCI_VERSION_MINOR" DisplayName="UCM-TCPCI Minor Version" Description="Minor version of USB Type-C Port Controller Interface Class Extension that will be used when compiling your driver" Category="UCMTCPCI" >
    <EnumValue Name="0" />
  </EnumProperty>
  <!-- End UCM-TCPCI -->
  <!-- URS -->
  <BoolProperty Name="UrsDriver" DisplayName="Link to the USB Role Switch Class Extension" Description="Indicates whether the driver uses the USB Role Switch Class Extension" Category="URS" />
  <EnumProperty Name="URS_VERSION_MAJOR" DisplayName="URS Major Version" Description="Major version of USB Role Switch Class Extension that will be used when compiling your driver" Category="URS" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="URS_VERSION_MINOR" DisplayName="URS Minor Version" Description="Minor version of USB Role Switch Class Extension that will be used when compiling your driver" Category="URS" >
    <EnumValue Name="0" />
  </EnumProperty>
  <!-- End URS -->
  <!-- UDE -->
  <BoolProperty Name="UdeDriver" DisplayName="Link to the USB Device Emulation Class Extension" Description="Indicates whether the driver uses the USB Device Emulation Class Extension" Category="UDE" />
  <EnumProperty Name="UDE_VERSION_MAJOR" DisplayName="UDE Major Version" Description="Major version of USB Device Emulation Class Extension that will be used when compiling your driver" Category="UDE" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="UDE_VERSION_MINOR" DisplayName="UDE Minor Version" Description="Minor version of USB Device Emulation Class Extension that will be used when compiling your driver" Category="UDE" >
    <EnumValue Name="0" />
  </EnumProperty>
  <!-- End UDE -->
  <!-- WIFI -->
  <BoolProperty Name="WifiDriver" DisplayName="Link to the Wi-Fi Adapter Class Extension" Description="Indicates whether the driver uses the Wi-Fi Adapter Class Extension. The Wi-Fi Class Extension API may be changed and drivers using the preview version will not receive WHQL certification." Category="WIFI" />
  <EnumProperty Name="WIFI_VERSION_MAJOR" DisplayName="Wi-Fi Major Version" Description="Major version of Wi-Fi Adapter Class Extension that will be used when compiling your driver" Category="WIFI" >
    <EnumValue Name="1" />
  </EnumProperty>
  <EnumProperty Name="WIFI_VERSION_MINOR" DisplayName="Wi-Fi Minor Version" Description="Minor version of Wi-Fi Adapter Class Extension that will be used when compiling your driver" Category="WIFI" >
    <EnumValue Name="0"/>
    <EnumValue Name="1"/>
    <EnumValue Name="2"/>
  </EnumProperty>
  <!-- End WIFI-->
</Rule>
