Wi-Fi Direct
The WDI driver in Windows 10 and the associated Wi-Fi Direct APIs replace the NDIS driver and associated SoftAP APIs in Windows 8.1. While you can continue to use the SoftAP API to work with the NDIS driver in Windows 10, the APIs are deprecated starting in Windows 8.1. That includes IDot11AdHocManager and related interfaces.
For full functionality in Windows 10, you should use the Wi-Fi Direct WinRT APIs with the WDI driver instead.
You can, however, use some of the Wi-Fi Direct WinRT APIs in a Classic Windows application. For instance you can use the Wi-Fi Direct WinRT APIs in place of WFDOpenHandle and related APIs in Classic Windows applications. The WiFiDirectLegacySettings class allows devices that don't support Wi-Fi Direct to connect to a device that does support it, and to use the services offered by the Wi-Fi Direct device.
WiFiDirectLegacySettings allows you to specify the SSID and password. For an example of how to use WiFiDirectLegacySettings in a Classic Windows application, see the WiFiDirectLegacyAPDemo_v1.0.zip download on the Microsoft download center.
Mobile Hotspots are supported starting in Windows 10, version 1607. A Mobile Hotspot is an enhanced version of the mobile broadband tethering feature. The Mobile Hotspot and legacy Wi-Fi Direct group owner features can't be used at the same time. Additionally, Mobile Hotspot takes precedence over all Wi-Fi Direct scenarios.
Developers of desktop applications can use this sample to see how to replace the deprecated WlanHostedNetwork* APIs with the new WinRT APIs without modifying the application to become a Universal Windows Application. These APIs let an application start a Wi-Fi Direct Group Owner (GO) that acts as an Access Point (AP). This allows devices that don't support Wi-Fi Direct to connect to the Windows device running this application and communicate over TCP/UDP. The APIs allow the developer to optionally specify an SSID and passphrase, or use randomly generated ones.
In Classic Windows apps, you don't need to set the WinRT device capabilities because there's no Package.appxmanifest file.