typedef struct _DOT11_ADHOC_SECURITY_SETTING {
DOT11_AUTH_ALGORITHM AuthAlgorithm;
DOT11_CIPHER_ALGORITHM CipherAlgorithm;
} DOT11_ADHOC_SECURITY_SETTING, *PDOT11_ADHOC_SECURITY_SETTING;
typedef struct _DOT11_ADHOC_NETWORK_PARAMETERS {
DOT11_SSID dot11Ssid;
DOT11_AUTH_ALGORITHM dot11AuthAlgorithm;
DOT11_CIPHER_ALGORITHM dot11CipherAlgorithm;
DOT11_ADHOC_NETWORK_FLAGS dot11AdhocNetworkFlags;
ULONG uAdhocNetworkKeyDataLen;
UCHAR ucAdhocNetworkKey[DOT11_ADHOC_MAX_NETWORK_KEY_LENGTH];
} DOT11_ADHOC_NETWORK_PARAMETERS, *PDOT11_ADHOC_NETWORK_PARAMETERS;
typedef interface IDot11AdHocManager IDot11AdHocManager;
DECLARE_INTERFACE_(IDot11AdHocManager, IUnknown) {
STDMETHOD(CreateWirelessNetwork)(
_In_ LPCWSTR pszSSID,
_In_ DOT11_ADHOC_SECURITY_SETTING *pSecuritySettings,
_In_ DOT11_ADHOC_NETWORK_PARAMETERS *pNetworkParameters,
_Out_ IUnknown **ppIUnknown
) PURE;
STDMETHOD(DestroyWirelessNetwork)(
_In_ IUnknown *pIUnknown
) PURE;
STDMETHOD(CommitWirelessNetwork)(
_In_ IUnknown *pIUnknown
) PURE;
STDMETHOD(ScanWirelessNetwork)(
_In_ IUnknown *pIUnknown,
_In_ IUnknown *pIEnumNetworks
) PURE;
STDMETHOD(OnInterfaceStateChange)(
_In_ NDIS_STATUS ndisStatus
) PURE;
STDMETHOD(OnNetworkStateChange)(
_In_ IUnknown *pIUnknown,
_In_ NDIS_STATUS ndisStatus
) PURE;
};
extern RPC_IF_HANDLE __MIDL_itf_adhoc_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_adhoc_0000_0001_v0_0_s_ifspec;
在上面的代码中,IDot11AdHocManager 接口继承自 IUnknown 接口,并定义了以下方法:
1. CreateWirelessNetwork: 用于创建一个无线 Ad-hoc 网络。需要提供 SSID、安全设置和网络参数。
2. DestroyWirelessNetwork: 用于销毁指定的无线 Ad-hoc 网络。
3. CommitWirelessNetwork: 提交对无线 Ad-hoc 网络的更改。
4. ScanWirelessNetwork: 扫描附近的无线网络。
5. OnInterfaceStateChange: 当 Ad-hoc 网络接口状态变化时被调用。
6. OnNetworkStateChange: 当 Ad-hoc 网络状态变化时被调用。
这些方法允许应用程序通过管理 Ad-hoc 网络接口的状态、创建和配置网络,以及处理网络状态变化来实现对无线 Ad-hoc 网络的灵活管理。
转载请注明出处:http://www.zyzy.cn/article/detail/23790/Win32 API/Adhoc.h/IDot11AdHocManager