On Linux/Ubuntu we have HOSTAPD and WPA Supplicant which can make wireless NIC card either access point or hotspot or p2p (wifi direct).
Is there any way to perform the same on Windows?
Yes it is possible to use WPA_Supplicant on windows. Per the readme. This should help you get pointed in the right direction.
wpa_supplicant for Windows
Copyright (c) 2003-2009, Jouni Malinen and contributors All Rights Reserved.
This program is licensed under the BSD license (the one with advertisement clause removed).
wpa_supplicant has support for being used as a WPA/WPA2/IEEE 802.1X Supplicant on Windows. The current port requires that WinPcap (http://winpcap.polito.it/) is installed for accessing packets and the driver interface. Both release versions 3.0 and 3.1 are supported.
The current port is still somewhat experimental. It has been tested mainly on Windows XP (SP2) with limited set of NDIS drivers. In addition, the current version has been reported to work with Windows 2000.
All security modes have been verified to work (at least complete authentication and successfully ping a wired host): - plaintext - static WEP / open system authentication - static WEP / shared key authentication - IEEE 802.1X with dynamic WEP keys - WPA-PSK, TKIP, CCMP, TKIP+CCMP - WPA-EAP, TKIP, CCMP, TKIP+CCMP - WPA2-PSK, TKIP, CCMP, TKIP+CCMP - WPA2-EAP, TKIP, CCMP, TKIP+CCMP
Building wpa_supplicant with mingw
The default build setup for wpa_supplicant is to use MinGW and cross-compiling from Linux to MinGW/Windows. It should also be possible to build this under Windows using the MinGW tools, but that is not tested nor supported and is likely to require some changes to the Makefile unless cygwin is used.
Using wpa_supplicant for Windows
wpa_supplicant, wpa_cli, and wpa_gui behave more or less identically to Linux version, so instructions in README and example wpa_supplicant.conf should be applicable for most parts. In addition, there is another version of wpa_supplicant, wpasvc.exe, which can be used as a Windows service and which reads its configuration from registry instead of text file.
When using access points in "hidden SSID" mode, ap_scan=2 mode need to be used (see wpa_supplicant.conf for more information).
Windows NDIS/WinPcap uses quite long interface names, so some care will be needed when starting wpa_supplicant. Alternatively, the adapter description can be used as the interface name which may be easier since it is usually in more human-readable format. win_if_list.exe can be used to find out the proper interface name.