From 1ed252413b386a653918c6c3bb648dc930e64c75 Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sun, 15 Mar 2009 19:48:56 +0000 Subject: [PATCH] -add some more WLAN types -add wlansvc.idl svn path=/trunk/; revision=40047 --- reactos/include/psdk/eaptypes.h | 17 ++ reactos/include/psdk/l2cmn.h | 16 ++ reactos/include/psdk/wlanapi.h | 58 +++-- reactos/include/psdk/wlantypes.h | 12 + reactos/include/reactos/idl/idl.rbuild | 6 + reactos/include/reactos/idl/wlansvc.idl | 326 ++++++++++++++++++++++++ 6 files changed, 414 insertions(+), 21 deletions(-) create mode 100644 reactos/include/psdk/eaptypes.h create mode 100644 reactos/include/psdk/l2cmn.h create mode 100644 reactos/include/psdk/wlantypes.h create mode 100644 reactos/include/reactos/idl/wlansvc.idl diff --git a/reactos/include/psdk/eaptypes.h b/reactos/include/psdk/eaptypes.h new file mode 100644 index 00000000000..e481583a1fc --- /dev/null +++ b/reactos/include/psdk/eaptypes.h @@ -0,0 +1,17 @@ +#ifndef EAPTYPES_H +#define EAPTYPES_H + +typedef struct _EAP_TYPE +{ + BYTE type; + DWORD dwVendorId; + DWORD dwVendorType; +} EAP_TYPE, *PEAP_TYPE; + +typedef struct _EAP_METHOD_TYPE +{ + EAP_TYPE eapType; + DWORD dwAuthorId; +} EAP_METHOD_TYPE, *PEAP_METHOD_TYPE; + +#endif diff --git a/reactos/include/psdk/l2cmn.h b/reactos/include/psdk/l2cmn.h new file mode 100644 index 00000000000..ef7e628421c --- /dev/null +++ b/reactos/include/psdk/l2cmn.h @@ -0,0 +1,16 @@ +#ifndef _L2CMN_H +#define _L2CMN_H + +typedef struct _L2_NOTIFICATION_DATA { + DWORD NotificationSource; + DWORD NotificationCode; + GUID InterfaceGuid; + DWORD dwDataSize; +#if defined(__midl) || defined(__WIDL__) + [unique, size_is(dwDataSize)] PBYTE pData; +#else + PVOID pData; +#endif +} L2_NOTIFICATION_DATA, *PL2_NOTIFICATION_DATA; + +#endif diff --git a/reactos/include/psdk/wlanapi.h b/reactos/include/psdk/wlanapi.h index 3fe48a66fb3..c2d5fa0e1f0 100644 --- a/reactos/include/psdk/wlanapi.h +++ b/reactos/include/psdk/wlanapi.h @@ -1,7 +1,9 @@ #ifndef _WLANAPI_H #define _WLANAPI_H +#include #include +#include #ifdef __cplusplus extern "C" { @@ -13,6 +15,34 @@ extern "C" { /* Enumerations */ +#if defined(__midl) || defined(__WIDL__) +typedef [v1_enum] enum _WLAN_OPCODE_VALUE_TYPE { +#else +typedef enum _WLAN_OPCODE_VALUE_TYPE { +#endif + wlan_opcode_value_type_query_only = 0, + wlan_opcode_value_type_set_by_group_policy, + wlan_opcode_value_type_set_by_user, + wlan_opcode_value_type_invalid +} WLAN_OPCODE_VALUE_TYPE; + +typedef enum _WLAN_SECURABLE_OBJECT { + wlan_secure_permit_list = 0, + wlan_secure_deny_list, + wlan_secure_ac_enabled, + wlan_secure_bc_scan_enabled, + wlan_secure_bss_type, + wlan_secure_show_denied, + wlan_secure_interface_properties, + wlan_secure_ihv_control, + wlan_secure_all_user_profiles_order, + wlan_secure_add_new_all_user_profiles, + wlan_secure_add_new_per_user_profiles, + wlan_secure_media_streaming_mode_enabled, + wlan_secure_current_operation_mode, + WLAN_SECURABLE_OBJECT_COUNT +} WLAN_SECURABLE_OBJECT, *PWLAN_SECURABLE_OBJECT; + typedef enum _WLAN_CONNECTION_MODE { wlan_connection_mode_profile = 0, wlan_connection_mode_temporary_profile, @@ -133,7 +163,7 @@ typedef struct _WLAN_AVAILABLE_NETWORK_LIST { DWORD dwNumberOfItems; DWORD dwIndex; #if defined(__midl) || defined(__WIDL__) - [size_is(dwNumberOfItems)] WLAN_AVAILABLE_NETWORK Network[]; + [size_is(dwNumberOfItems)] WLAN_AVAILABLE_NETWORK Network[*]; #else WLAN_AVAILABLE_NETWORK Network[1]; #endif @@ -141,35 +171,21 @@ typedef struct _WLAN_AVAILABLE_NETWORK_LIST { typedef struct _WLAN_CONNECTION_PARAMETERS { WLAN_CONNECTION_MODE wlanConnectionMode; - [string] wchar_t * strProfile; +#if defined(__midl) || defined(__WIDL__) + [string] LPCWSTR strProfile; +#else + LPCWSTR strProfile; +#endif PDOT11_SSID pDot11Ssid; PDOT11_BSSID_LIST pDesiredBssidList; DOT11_BSS_TYPE dot11BssType; DWORD dwFlags; } WLAN_CONNECTION_PARAMETERS, *PWLAN_CONNECTION_PARAMETERS; +typedef L2_NOTIFICATION_DATA WLAN_NOTIFICATION_DATA, *PWLAN_NOTIFICATION_DATA; /* FIXME */ -typedef struct _struct_8 { - DWORD elem_1; - DWORD elem_2; - GUID elem_3; - DWORD elem_4; - [size_is(elem_4)] LPBYTE elem_5; -} struct_8 ; - -typedef struct struct_12 { - BYTE elem_1; - DWORD elem_2; - DWORD elem_3; -} struct_12 ; - -typedef struct _struct_9 { - struct_12 elem_1; - DWORD elem_2; -} struct_9 ; - typedef struct struct_C { ULONGLONG elem_1; ULONGLONG elem_2; diff --git a/reactos/include/psdk/wlantypes.h b/reactos/include/psdk/wlantypes.h new file mode 100644 index 00000000000..310d6ff55ad --- /dev/null +++ b/reactos/include/psdk/wlantypes.h @@ -0,0 +1,12 @@ +#ifndef __WLANTYPES_H__ +#define __WLANTYPES_H__ + +typedef enum _DOT11_BSS_TYPE { + dot11_BSS_type_infrastructure = 1, + dot11_BSS_type_independent, + dot11_BSS_type_any +} DOT11_BSS_TYPE; + + +#endif + diff --git a/reactos/include/reactos/idl/idl.rbuild b/reactos/include/reactos/idl/idl.rbuild index f1296f9748a..d46450e428e 100644 --- a/reactos/include/reactos/idl/idl.rbuild +++ b/reactos/include/reactos/idl/idl.rbuild @@ -27,4 +27,10 @@ lsa.idl + + wlansvc.idl + + + wlansvc.idl + diff --git a/reactos/include/reactos/idl/wlansvc.idl b/reactos/include/reactos/idl/wlansvc.idl new file mode 100644 index 00000000000..0ebf15607bf --- /dev/null +++ b/reactos/include/reactos/idl/wlansvc.idl @@ -0,0 +1,326 @@ +/* + * WLAN Service interface definition + */ + +#include +#include + +typedef [context_handle] PVOID WLANSVC_RPC_HANDLE; +typedef WLANSVC_RPC_HANDLE* LPWLANSVC_RPC_HANDLE; + +[ + uuid(266f33b4-c7c1-4bd1-8f52-ddb8f2214ea9), + version(1.0) +] + +interface wlansvc_interface +{ + /* Function: 0x00 */ + DWORD _RpcOpenHandle( + [in] wchar_t * arg_1, + [in] DWORD dwClientVersion, + [in, out] DWORD* pdwNegotiatedVersion, + [in, out] LPWLANSVC_RPC_HANDLE phClientHandle); + + /* Function: 0x01 */ + DWORD _RpcCloseHandle( + [in, out] LPWLANSVC_RPC_HANDLE phClientHandle); + + /* Function: 0x02 */ + DWORD _RpcEnumInterfaces( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [out, ref] PWLAN_INTERFACE_INFO_LIST *ppInterfaceList); + + /* Function: 0x03 */ + DWORD _RpcSetAutoConfigParameter( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] /* enum32 */ long OpCode, + [in] DWORD dwDataSize, + [in][size_is(dwDataSize)] LPBYTE pData); + + /* Function: 0x04 */ + DWORD _RpcQueryAutoConfigParameter( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] /* enum32 */ DWORD OpCode, + [out] LPDWORD pdwDataSize, + [out][ref][size_is(*pdwDataSize)] char ** ppData, + [out] /* enum32 */ DWORD * pWlanOpcodeValueType); + + /* Function: 0x05 */ + DWORD _RpcGetInterfaceCapability( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [out, ref] PWLAN_INTERFACE_CAPABILITY *ppCapability); + + /* Function: 0x06 */ + DWORD _RpcSetInterface( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] /* enum32 */ DWORD OpCode, + [in] DWORD dwDataSize, + [in, size_is(dwDataSize)] LPBYTE pData); + + /* Function: 0x07 */ + DWORD _RpcQueryInterface( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] /* enum32 */ long OpCode, + [out] LPDWORD pdwDataSize, + [out][ref][size_is(*pdwDataSize)] LPBYTE* ppData, + [out] /* enum32 */ LPDWORD pWlanOpcodeValueType); + + /* Function: 0x08 */ + DWORD _RpcIhvControl( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] /* enum32 */ DWORD Type, + [in] DWORD dwInBufferSize, + [in][size_is(dwInBufferSize)] LPBYTE pInBuffer, + [in] DWORD dwOutBufferSize, + [out][size_is(dwOutBufferSize), length_is(*pdwBytesReturned)] LPBYTE pOutBuffer, + [out] LPDWORD pdwBytesReturned); + + /* Function: 0x09 */ + DWORD _RpcScan( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][unique] PDOT11_SSID pDot11Ssid, + [in][unique] PWLAN_RAW_DATA pIeData); + + /* Function: 0x0A */ + DWORD _RpcGetAvailableNetworkList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] DWORD dwFlags, + [out][ref] WLAN_AVAILABLE_NETWORK_LIST **ppAvailableNetworkList); + + /* Function: 0x0B */ + DWORD _RpcGetNetworkBssList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][unique] PDOT11_SSID pDot11Ssid, + [in] /* enum16 */ short dot11BssType, + [in] DWORD bSecurityEnabled, + [out] LPDWORD dwBssListSize, + [out][ref][size_is(*dwBssListSize)] LPBYTE *ppWlanBssList); + + /* Function: 0x0C */ + DWORD _RpcConnect( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] PWLAN_CONNECTION_PARAMETERS* pConnectionParameters); + + /* Function: 0x0D */ + DWORD _RpcDisconnect( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGUID); + + /* Function: 0x0E */ + DWORD _RpcRegisterNotification( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] DWORD arg_2, + [out] LPDWORD pdwPrevNotifSource); + + /* Function: 0x0F */ + DWORD _RpcAsyncGetNotification( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [out][ref] PWLAN_NOTIFICATION_DATA *NotificationData); + + /* Function: 0x10 */ + DWORD _RpcSetProfileEapUserData( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName, + [in] EAP_METHOD_TYPE MethodType, + [in] DWORD dwFlags, + [in] DWORD dwEapUserDataSize, + [in][size_is(dwEapUserDataSize)] LPBYTE pbEapUserData); + + /* Function: 0x11 */ + DWORD _RpcSetProfile( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] DWORD dwFlags, + [in][string] wchar_t * strProfileXml, + [in][unique][string] wchar_t * strAllUserProfileSecurity, + [in] BOOL bOverwrite, + [out] LPDWORD pdwReasonCode); + + /* Function: 0x12 */ + DWORD _RpcGetProfile( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName, + [out][ref][string] wchar_t ** pstrProfileXml, + [out] LPDWORD pdwFlags, + [in, out][unique] LPDWORD pdwGrantedAccess); + + /* Function: 0x13 */ + DWORD _RpcDeleteProfile( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName); + + /* Function: 0x14 */ + DWORD _RpcRenameProfile( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strOldProfileName, + [in][string] wchar_t * strNewProfileName); + + /* Function: 0x15 */ + DWORD _RpcSetProfileList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in] DWORD dwItems, + [in] /* [string] */ [size_is(dwItems)] /* wchar_t */ BYTE ** strProfileNames); /* FIXME */ + + /* Function: 0x16 */ + DWORD _RpcGetProfileList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [out][ref] PWLAN_PROFILE_INFO_LIST *ppProfileList); + + /* Function: 0x17 */ + DWORD _RpcSetProfilePosition( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName, + [in] DWORD dwPosition); + + /* Function: 0x18 */ + DWORD _RpcSetProfileCustomUserData( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName, + [in] DWORD dwDataSize, + [in][unique][size_is(dwDataSize)] LPBYTE pData); + + /* Function: 0x19 */ + DWORD _RpcGetProfileCustomUserData( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName, + [out] LPDWORD dwDataSize, + [out][ref][size_is(*dwDataSize)] LPBYTE *pData); + + /* Function: 0x1A */ + DWORD _RpcSetFilterList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] /* enum16 */ short wlanFilterListType, + [in][unique] PDOT11_NETWORK_LIST pNetworkList); + + /* Function: 0x1B */ + DWORD _RpcGetFilterList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] /* enum16 */ short wlanFilterListType, + [out][ref] PDOT11_NETWORK_LIST *pNetworkList); + + /* Function: 0x1C */ + DWORD _RpcSetPsdIEDataList( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in][unique][string] wchar_t * strFormat, + [in] DWORD dwDataListSize, + [in][unique][size_is(dwDataListSize)] LPBYTE pPsdIEDataList); + + /* Function: 0x1D */ + DWORD _RpcSaveTemporaryProfile( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * strProfileName, + [in][unique][string] wchar_t * strAllUserProfileSecurity, + [in] DWORD dwFlags, + [in] BOOL bOverWrite); + + /* Function: 0x1E, address: 0x2C992E36 */ + DWORD _RpcIsUIRequestPending( + [in] wchar_t * arg_1, + [in] GUID* pInterfaceGuid, + [in] struct_C * arg_3, + [out] LPDWORD arg_4); + + /* Function: 0x1F, address: 0x2C992EB3 */ + DWORD _RpcSetUIForwardingNetworkList( + [in] wchar_t * arg_1, + [in][size_is(dwSize)] GUID* arg_2, + [in] DWORD dwSize, + [out] GUID* arg_4); + + /* Function: 0x20 */ + DWORD _RpcIsNetworkSuppressed( + [in] wchar_t * arg_1, + [in] DWORD arg_2, + [in] GUID* pInterfaceGuid, + [out] LPDWORD arg_4); + + /* Function: 0x21 */ + DWORD _RpcRemoveUIForwardingNetworkList( + [in] wchar_t * arg_1, + [in] GUID* pInterfaceGuid); + + /* Function: 0x22 */ + DWORD _RpcQueryExtUIRequest( + [in] wchar_t * arg_1, + [in] GUID* arg_2, + [in] GUID* arg_3, + [in] /* enum16 */ short arg_4, + [out] GUID* pInterfaceGuid, + [out][ref] struct_C ** arg_6); + + /* Function: 0x23 */ + DWORD _RpcUIResponse( + [in] wchar_t * arg_1, + [in] struct_C * arg_2, + [in] struct_D * arg_3); + + /* Function: 0x24 */ + DWORD _RpcGetProfileKeyInfo( + [in] wchar_t * arg_1, + [in] DWORD arg_2, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * arg_4, + [in] DWORD arg_5, + [out] LPDWORD arg_6, + [in, out][unique][size_is(arg_5)] char * arg_7, + [out] LPDWORD arg_8); + + /* Function: 0x25 */ + DWORD _RpcAsyncDoPlap( + [in] wchar_t * arg_1, + [in] GUID* pInterfaceGuid, + [in][string] wchar_t * arg_3, + [in] DWORD dwSize, + [in][size_is(dwSize)] struct_E arg_5[]); + + /* Function: 0x26 */ + DWORD _RpcQueryPlapCredentials( + [in] wchar_t * arg_1, + [out] LPDWORD dwSize, + [out][ref][size_is(*dwSize)] struct_E ** arg_3, + [out][ref][string] wchar_t ** arg_4, + [out] GUID* pInterfaceGuid, + [out] LPDWORD arg_6, + [out] LPDWORD arg_7, + [out] LPDWORD arg_8, + [out] LPDWORD arg_9); + + /* Function: 0x27 */ + DWORD _RpcCancelPlap( + [in] wchar_t * arg_1, + [in] GUID* pInterfaceGuid); + + /* Function: 0x28 */ + DWORD _RpcSetSecuritySettings( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] WLAN_SECURABLE_OBJECT SecurableObject, + [in][string] wchar_t * strModifiedSDDL); + + /* Function: 0x29 */ + DWORD _RpcGetSecuritySettings( + [in] WLANSVC_RPC_HANDLE hClientHandle, + [in] WLAN_SECURABLE_OBJECT SecurableObject, + [out] WLAN_OPCODE_VALUE_TYPE *pValueType, + [out][ref][string] wchar_t ** pstrCurrentSDDL, + [out] LPDWORD pdwGrantedAccess); + +} \ No newline at end of file