IoT Core feature list
Here's the features you can add to Windows 10 IoT Core (IoT Core) images.
Add features using the OEMInput XML file. To learn more, see the IoT Core manufacturing guide.
Retail features defined by Microsoft
The following table describes the Microsoft-defined features that can be used by OEMs in the Features element in the OEMInput file for Retail build.
When creating images for your device, determine which features are required for your device.
Features
Features | Description |
---|---|
IOT_EFIESP | Boots the device using UEFI, required feature in all images. |
IOT_UAP_OOBE | Includes the inbox OOBE app that is launched during the first boot and also during installation of apps, required feature in all images. |
IOT_CRT140 | Adds CRT binaries, required feature in all images. |
IOT_UNIFIED_WRITE_FILTER | Adds Unified Write Filter (UWF) to protect physical storage media from data writes. |
IOT_USBFN_CLASS_EXTENSION | Adds USB function WDF class extension for USB function mode support. |
IOT_POWERSHELL | Adds PowerShell (except for Arm64) and WinRM binares. Recommended: Add the open source powershell version using Import-PSCoreRelease (importps). You will still require IOT_POWERSHELL feature to include WinRM binaries |
IOT_ALLJOYN_APP | Adds the AllJoyn application, used for Headless ZwaveAdapterAppx. |
IOT_ONBOARDING_APP | Provides a means of setting up the device’s WiFi connection if no other WiFi profile was configured. It places the WiFi adapter into a Soft-AP mode so a phone or other device can connect to it. |
IOT_FONTS_CHINESE_EXTENDED | Adds additional Chinese fonts. |
IOT_APP_TOOLKIT | Adds tools required for Appx installation and management. |
IOT_FFU_FLASHMODE | Adds flashing mode support so that the device can be flashed using ffutool. Currently supported for arm only. |
IOT_MTP | Adds Media transfer protocol support. See MTP. |
IOT_MIRACAST_RX_APP | Adds Connect App that supports Miracast receive feature. Note that the underlying hw/drivers should support Miracast for this app to work. Currently supported for arm only. |
IOT_WEBB_EXTN | Adds Windows Device Portal. If you are building an open retail device for commercial deployment to a "specific/limited installation" (i.e. factory or retail store) where the end-user does the final configuration and you document your customers that they must obtain a certificate for WDP and install it on both WDP and connecting browsers and passwords are changed on WDP, then using WDP in this narrow commercial instance is acceptable. |
IOT_BLUETOOTH_A2DP_SINK | Allows an audio device to play to the device. This is new in Windows 10, version 1809 |
IOT_BLUETOOTH_A2DP_SOURCE | Allows the device to play to an external device (e.g. a Bluetooth speaker). This is available as a separate feature in Windows 10, version 1809. In Windows 10, version 1803, this was included in the image by default. |
IOT_BLUETOOTH_HFP_AUDIOGATEWAY | HFP AudioGateway allows the device to serve as a gateway device for phone calls. An application can interact with the calling functions of a paired Bluetooth headset by using APIs under Windows.ApplicationModel.Calls, specifically the VoipPhoneCall class. . |
IOT_HEADLESS_CONFIGURATION | Configures device to boot into Headless mode, where the UI stack is disabled and foreground apps will not launch |
IOT_NARRATOR | Adds support for the Windows 10 screen-reading functionality, Narrator. |
IOT_OCR_ALL_LANGS | Adds Optical Character Recognition (OCR) for all supported languages, including English |
IOT_OCR_EN_US | Adds Optical Character Recognition (OCR) support for English. Do not use with IOT_OCR_ALL_LANGS |
Adds hardware notification WDF class extension for vibration API support. Deprecated in Windows 10, version 1709, as this feature is added by default | |
Adds the command-line tool: netcmd.exe, used for configuring network connectivity. Deprecated in Windows 10, version 1803. The netcmd.exe will be removed when updating to version 1803. Use Windows.Devices.WiFi.WiFiAdapter for managing Wifi. See WiFi Connector example. | |
Deprecated in Windows 10, 1809 release along with IOT_CORTANA feature. Adds Account Management host application, enables MSA sign-in. Required for Cortana. |
Settings
Features | Description |
---|---|
IOT_POWER_SETTINGS | Prevents the device from going to sleep due to inactivity. Required for x86/amd64 platforms. This feature supports Arm starting with Windows 10, Version 1703. |
IOT_EFIESP_BCD | Sets boot configuration data (BCD) for GPT-based drives. Required for x86/amd64. MBR devices should use IOT_EFIESP_BCD_MBR. |
IOT_EFIESP_BCD_MBR | Sets boot configuration data (BCD) for MBR-based drives. |
IOT_SHELL_HOTKEY_SUPPORT | Adds support to launch default app using a hotkey: VK_LWIN (Left Windows key). |
IOT_SHELL_ONSCREEN_KEYBOARD | Adds available on-screen keyboard. |
IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS | Enables on-screen keyboard to automatically appear when input field is focused. Requires IOT_SHELL_ONSCREEN_KEYBOARD. |
IOT_DISABLEBASICDISPLAYFALLBACK | Disables the inbox basic render driver. This feature should only be used with the Qualcomm DragonBoard (DB). |
IOT_CRASHCONTROL_SETTINGS | Configures the device to auto reboot without showing blue screen (BSOD) when the device crashs. This also disables crashdump. [AutoReboot = 1 ; DisplayDisabled = 1 and CrashDumpEnabled = 0]. See Crash settings |
IOT_SSH | Enables Secure Shell (SSH) connectivity |
In Windows 10 1809, this is deprecated and the device will get OS only updates by default. Adds the Generic device targeting info for OS only Updates. |
Developer Tools
Important
The following developer features should not be used in Retail builds and in images for commercial devices. If you would still like to disable IOT_SIREP as a developer tool, however, please follow the instructions here.
Features | Description |
---|---|
IOT_SIREP | Enables SIREP service for TShell connectivity. |
IOT_TOOLKIT | Includes developer tools such as: Kernel Debug components, FTP, Network Diagnostics, basic device portal, and XPerf. This also relaxes the firewall rules and enables various ports. |
IOT_NANORDPSERVER | Adds Remote Display packages. Note: Remote Display is prerelease software intended for development and training purposes only. |
IOT_BERTHA | Adds a sample app: "Bertha". This app provides basic version info and connectivity status. |
IOT_UAP_DEFAULTAPP | Adds a sample app, "Chucky". This app is similar to "Bertha". |
IOT_FTSER2K_MAKERDRIVER | Adds the FTDI USB-to-Serial driver. |
IOT_CP210x_MAKERDRIVER | Adds drivers for SiliconLabs CP210x-based USB to Serial adapters. |
IOT_DMAP_DRIVER | Adds DMAP drivers. |
IOT_CONTAINERS | Adds support for native Nano Server Containers. These are supported on Intel 64-bit platforms (since Windows 10, version 1709) and ARM32 platform (since Windows 10, version 1809). |
Deprecated in Windows 10, 1809 release. See Cortana SDK for including Cortana to your device. Adds Cortana feature. Requires IOT_APPLICATIONS feature. | |
Deprecated in Windows 10, 1809 release along with IOT_CORTANA feature. Enables running Cortana application on boot. This add-on causes Cortana to run in the background resulting in better response time for Cortana. |
Speech Data
Features | Description |
---|---|
IOT_SPEECHDATA_AR_SA | Adds speech data for Arabic (Saudi Arabia). |
IOT_SPEECHDATA_DE_DE | Adds speech data for German (Germany). |
IOT_SPEECHDATA_EL_GR | Adds speech data for Greek. |
IOT_SPEECHDATA_EN_CA | Adds speech data for English (Canada). |
IOT_SPEECHDATA_EN_GB | Adds speech data for English (UK). |
IOT_SPEECHDATA_ES_ES | Adds speech data for Spanish (Spain). |
IOT_SPEECHDATA_ES_MX | Adds speech data for Spanish (Mexico). |
IOT_SPEECHDATA_FR_CA | Adds speech data for French (Canada). |
IOT_SPEECHDATA_FR_FR | Adds speech data for French (France). |
IOT_SPEECHDATA_IT_IT | Adds speech data for Italian. |
IOT_SPEECHDATA_JA_JP | Adds speech data for Japanese. |
IOT_SPEECHDATA_KO_KR | Adds speech data for Korean. |
IOT_SPEECHDATA_NL_NL | Adds speech data for Dutch. |
IOT_SPEECHDATA_PL_PL | Adds speech data for Polish. |
IOT_SPEECHDATA_PT_BR | Adds speech data for Portuguese (Brazil). |
IOT_SPEECHDATA_PT_PT | Adds speech data for Portuguese (Portugal). |
IOT_SPEECHDATA_RO_RO | Adds speech data for Romanian. |
IOT_SPEECHDATA_RU_RU | Adds speech data for Russian. |
IOT_SPEECHDATA_ZH_CN | Adds speech data for Chinese (Mainland). |
IOT_SPEECHDATA_ZH_HK | Adds speech data for Chinese (Hong Kong SAR). Do not include IOT_SPEECHDATA_ZH_TW. |
IOT_SPEECHDATA_ZH_TW | Adds speech data for Chinese (Taiwan). Do not include IOT_SPEECHDATA_ZH_HK. |
Deprecated in Windows 10, version 1607. Do not add this feature. The default image includes speech data for English (US). |
Features in the IoT Core Add-Ons
Note
The packages corresponding to these features are available in source in the iot-adk-addonkit. You can modify them to suit your requirements.
Features | Description |
---|---|
CUSTOM_CMD | Feature to include the oemcustomization.cmd. This is product-specific and picks up the input file from product directory. OEM_CustomCmd is the deprecated feature ID, can still be used for legacy builds. See Runtime Customizations |
CUSTOM_BCD | Includes BCD settings to suppress boot UX progress display and also enables flight sigining. Modify Custom.BCD.xml to remove flight signing. |
CUSTOM_OOBEAPP | Includes customizations for the OOBE App |
PROV_AUTO | Feature to add a provisioning package to an image. This is product specific and picks up the input ppkg file from the product directory OEM_ProvAuto is the deprecated feature ID, can still be used for legacy builds. See Runtime customizations |
RECOVERY_BCD | Includes recovery BCD settings for GPT devices. See Add a recovery mechanism |
RECOVERY_BCD_MBR | Includes recovery BCD settings for MBR devices. See Add a recovery mechanism |
SEC_BITLOCKER | Includes the configuration for Bitlocker |
SEC_SECUREBOOT | Includes the retail configuration for Secure Boot |
SEC_SECUREBOOT_TEST | Includes the test configuration for Secure Boot |
SEC_DEVICEGUARD | Includes the retail configuration for DeviceGuard |
SEC_DEVICEGUARD_TEST | Includes the test configuration for DeviceGuard |
SETTINGS_HOTKEY | Feature to demonstrate how to add a registry setting to an image. Read Switching between apps for more details. |
Test features
The following table describes the Microsoft-defined test features that can be used by OEMs in the Features element in the OEMInput file for Test builds ONLY.
Features | Description |
---|---|
IOT_BCD_FLASHMODE_SETTING | Enables FFU flashing setting. |
IOT_DISABLE_TESTSIGNING | Disables runtime-installation of test-signed packages. |
IOT_EFIESP_TEST | UEFI packages required for booting test images. Should not be used with IOT_EFIESP. |
IOT_ENABLE_ADMIN | Enables the Administrator account with default password 'p@ssw0rd'. |
IOT_ENABLE_TESTSIGNING | Enables run-time installation of test-signed packages. Allows test-signed drivers and (.appx) apps to run. |
IOT_KD_ON | Enables Kernel Debugger |
IOT_KDNETUSB_SETTINGS | Includes all kernel debugger transports and enables KDNET over USB. The default debug transport settings for this feature are an IP address of "1.2.3.4", a port address of "50000", and a debugger key of "4.3.2.1". To use the default IP address of 1.2.3.4, run VirtEth.exe with the /autodebug flag. For example, to establish a kernel debugger connection to the phone, use the command:Windbg -k net:port=50000,key=4.3.2.1 Note Do not include either IOT_KDUSB_SETTINGS or IOT_KDNETUSB_SETTINGS if you need to enable MTP or IP over USB in the image. If the kernel debugger is enabled in the image and the debug transports are used to connect to the device, the kernel debugger has exclusive use of the USB port and prevents MTP and IP over USB from working. |
IOT_KDSERIAL_SETTINGS | Includes all kernel debugger transports and enables KDSERIAL with the following settings: 115200 Baud, 8 bit, no parity. These settings apply to x86 and amd64 platforms. Arm platforms use UEFI-defined serial transport settings. |
IOT_KDUSB_SETTINGS | Includes all kernel debugger transports and enables KDUSB. The default debug transport target name for this feature is WOATARGET. To establish a kernel debugger connection to the phone, use the command: Windbg -k usb:targetname=WOATARGET . Note Do not include either IOT_KDUSB_SETTINGS or IOT_KDNETUSB_SETTINGS if you need to enable MTP or IP over USB in the image. If the kernel debugger is enabled in the image and the debug transports are used to connect to the device, the kernel debugger has exclusive use of the USB port and prevents MTP and IP over USB from working. |
IOT_WDTF | Includes components for Windows Driver Test Framework, required for HLK validation. |
IOT_DIRECTX_TOOLS | Adds DirectX tools. |
IOT_UMDFDBG_SETTINGS | Includes user-mode driver framework debug settings. |
Disables the code integrity check. Deprecated in Windows 10, version 1709. |
Features per release
The following table provides an overview of supported features per IoT Core OS release, listed in alphabetical order.
Features | 1809 (17731.x) | 1803 (17134.x) | 1709 (16299.x) | 1703 (15063.x) | 1607 (14393.x) |
---|---|---|---|---|---|
IOT_ALLJOYN_APP | x | x | x | x | x |
N/A | x | x | x | ||
IOT_APP_TOOLKIT | x | x | x | x | x |
IOT_BCD_FLASHMODE_SETTING | x | ||||
IOT_BERTHA | x | x | x | x | x |
IOT_BLUETOOTH_A2DP_SINK | x | ||||
IOT_BLUETOOTH_A2DP_SOURCE | x | ||||
IOT_BLUETOOTH_HFP_AUDIOGATEWAY | x | ||||
IOT_CONTAINERS | x (x64,arm32) | x(x64) | x(x64) | ||
N/A | x | x | x | ||
N/A | x | x | x | ||
IOT_CP210x_MAKERDRIVER | x | x | x | x | |
IOT_CRASHCONTROL_SETTINGS | x | x | |||
IOT_CRT140 | x | x | x | x | x |
IOT_DIRECTX_TOOLS | x | x | x | x | x |
IOT_DISABLE_FLIGHTSIGNING | x | x | x | x | x |
IOT_DISABLE_TESTSIGNING | x | x | x | x | x |
N/A | N/A | N/A | x | x | |
IOT_DISABLEBASICDISPLAYFALLBACK | x | x | x | x | x |
IOT_DMAP_DRIVER | x | x | x | x | x |
IOT_EFIESP | x | x | x | x | x |
IOT_EFIESP_BCD | x | x | x | x | x |
IOT_EFIESP_BCD_MBR | x | x | x | x | |
IOT_EFIESP_TEST | x | x | x | x | x |
IOT_ENABLE_ADMIN | x | x | x | x | x |
IOT_ENABLE_FLIGHTSIGNING | x | x | x | x | x |
IOT_ENABLE_TESTSIGNING | x | x | x | x | x |
IOT_FFU_FLASHMODE | x(arm) | x(arm) | |||
IOT_FONTS_CHINESE_EXTENDED | x | x | x | x | |
IOT_FTSER2K_MAKERDRIVER | x | x | x | x | x |
N/A | x | x | x | x | |
N/A | N/A | N/A | x | ||
IOT_HEADLESS_CONFIGURATION | x | ||||
IOT_KD_ON | x | x | x | x | x |
IOT_KDNETUSB_SETTINGS | x | x | x | x | x |
IOT_KDSERIAL_SETTINGS | x | x | x | x | x |
IOT_KDUSB_SETTINGS | x | x | x | x | x |
IOT_MIRACAST_RX_APP | x | x | |||
IOT_MTP | x | x | |||
IOT_NANORDPSERVER | x | x | x | x | x |
N/A | N/A | N/A | x | x | |
IOT_NARRATOR | x | ||||
IOT_OCR_ALL_LANGS | x | ||||
IOT_OCR_EN_US | x | ||||
IOT_ONBOARDING_APP | x | x | x | ||
IOT_POWER_SETTINGS | x | x | x | x | x (x86/x64) |
IOT_POWERSHELL | x | x | x | x | x |
IOT_SHELL_HOTKEY_SUPPORT | x | x | x | x | x |
IOT_SHELL_ONSCREEN_KEYBOARD | x | x | x | x | |
IOT_SHELL_ONSCREEN_KEYBOARD_FOLLOWFOCUS | x | x | x | x | |
IOT_SIREP | x | x | x | x | x |
IOT_SPEECHDATA_AR_SA | x | ||||
IOT_SPEECHDATA_DE_DE | x | x | x | x | x |
IOT_SPEECHDATA_EL_GR | x | ||||
IOT_SPEECHDATA_EN_CA | x | x | x | x | |
IOT_SPEECHDATA_EN_GB | x | x | x | x | x |
N/A | N/A | N/A | N/A | x | |
IOT_SPEECHDATA_ES_ES | x | x | x | x | x |
IOT_SPEECHDATA_ES_MX | x | x | x | x | |
IOT_SPEECHDATA_FR_CA | x | x | x | x | |
IOT_SPEECHDATA_FR_FR | x | x | x | x | x |
IOT_SPEECHDATA_IT_IT | x | x | x | x | x |
IOT_SPEECHDATA_JA_JP | x | x | x | x | x |
IOT_SPEECHDATA_KO_KR | x | ||||
IOT_SPEECHDATA_NL_NL | x | ||||
IOT_SPEECHDATA_PL_PL | x | ||||
IOT_SPEECHDATA_PT_BR | x | ||||
IOT_SPEECHDATA_PT_PT | x | ||||
IOT_SPEECHDATA_RO_RO | x | ||||
IOT_SPEECHDATA_RU_RU | x | ||||
IOT_SPEECHDATA_ZH_CN | x | x | x | x | x |
IOT_SPEECHDATA_ZH_HK | x | x | x | x | x |
IOT_SPEECHDATA_ZH_TW | x | x | x | x | x |
IOT_SSH | x | x | x | x | x |
IOT_TOOLKIT | x | x | x | x | x |
IOT_UAP_DEFAULTAPP | x | x | x | x | x |
IOT_UAP_OOBE | x | x | x | x | x |
IOT_UMDFDBG_SETTINGS | x | x | x | x | x |
IOT_UNIFIED_WRITE_FILTER | x | x | x | x | x |
IOT_USBFN_CLASS_EXTENSION | x | x | x | x | x |
IOT_WDTF | x | x | x | x | x |
IOT_WEBB_EXTN | x | x | x | x | x |