mirror of https://github.com/UMSKT/xpmgr.git
101 lines
3.5 KiB
C
101 lines
3.5 KiB
C
/*++
|
|
|
|
Copyright (c) 2004 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
l2cmn.h
|
|
|
|
Abstract:
|
|
|
|
Definitions and data strcutures for common layer 2
|
|
|
|
Environment:
|
|
|
|
User mode only
|
|
|
|
--*/
|
|
|
|
#ifndef _L2CMN_H
|
|
#define _L2CMN_H
|
|
|
|
#pragma once
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
// Profile name max length, in characters
|
|
#define L2_PROFILE_MAX_NAME_LENGTH 256
|
|
|
|
// If a notification needs to be private that is only consumed by internal components
|
|
// then it should be part of l2cmnpriv.h
|
|
|
|
|
|
// the types of notification
|
|
// This signifies what kind of notification is to be passed on , the
|
|
// 0X0000FFFF signifies all public notifications , so all notfications that need to be public
|
|
// should be in this range and have a single bit set as these flags can be combined.
|
|
#define L2_NOTIFICATION_SOURCE_NONE 0
|
|
#define L2_NOTIFICATION_SOURCE_DOT3_AUTO_CONFIG 0X00000001
|
|
#define L2_NOTIFICATION_SOURCE_SECURITY 0X00000002
|
|
#define L2_NOTIFICATION_SOURCE_ONEX 0X00000004
|
|
#define L2_NOTIFICATION_SOURCE_WLAN_ACM 0X00000008
|
|
#define L2_NOTIFICATION_SOURCE_WLAN_MSM 0X00000010
|
|
#define L2_NOTIFICATION_SOURCE_WLAN_SECURITY 0X00000020
|
|
#define L2_NOTIFICATION_SOURCE_WLAN_IHV 0X00000040
|
|
#define L2_NOTIFICATION_SOURCE_WLAN_HNWK 0X00000080
|
|
|
|
#define L2_NOTIFICATION_SOURCE_ALL 0X0000FFFF
|
|
#define L2_NOTIFICATION_CODE_PUBLIC_BEGIN 0X00000000
|
|
#define L2_NOTIFICATION_CODE_GROUP_SIZE 0x00001000
|
|
#define L2_NOTIFICATION_CODE_V2_BEGIN (L2_NOTIFICATION_CODE_PUBLIC_BEGIN+L2_NOTIFICATION_CODE_GROUP_SIZE)
|
|
|
|
// L2 reason code
|
|
// reason code bases
|
|
#define L2_REASON_CODE_GROUP_SIZE 0x10000
|
|
#define L2_REASON_CODE_GEN_BASE 0x10000
|
|
#define L2_REASON_CODE_DOT11_AC_BASE (L2_REASON_CODE_GEN_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_DOT11_MSM_BASE (L2_REASON_CODE_DOT11_AC_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_DOT11_SECURITY_BASE (L2_REASON_CODE_DOT11_MSM_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_ONEX_BASE (L2_REASON_CODE_DOT11_SECURITY_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_DOT3_AC_BASE (L2_REASON_CODE_ONEX_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_DOT3_MSM_BASE (L2_REASON_CODE_DOT3_AC_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_PROFILE_BASE (L2_REASON_CODE_DOT3_MSM_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_IHV_BASE (L2_REASON_CODE_PROFILE_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
#define L2_REASON_CODE_WIMAX_BASE (L2_REASON_CODE_IHV_BASE+L2_REASON_CODE_GROUP_SIZE)
|
|
|
|
// the common reason codes
|
|
#define L2_REASON_CODE_SUCCESS 0
|
|
|
|
// general reason code
|
|
#define L2_REASON_CODE_UNKNOWN (L2_REASON_CODE_GEN_BASE+1)
|
|
|
|
// common profile section missing
|
|
#define L2_REASON_CODE_PROFILE_MISSING 0x00000001
|
|
|
|
// This structure is the notification structure which needs to be filled in by each component
|
|
// The interface guid is filled in only by the AC
|
|
// The NotificationSource signifies the type above
|
|
// and NotificationCode is one of the enum values
|
|
typedef struct _L2_NOTIFICATION_DATA {
|
|
DWORD NotificationSource;
|
|
DWORD NotificationCode;
|
|
GUID InterfaceGuid;
|
|
DWORD dwDataSize;
|
|
|
|
#ifdef __midl
|
|
[unique, size_is(dwDataSize)] PBYTE pData;
|
|
#else
|
|
__field_bcount(dwDataSize) PVOID pData;
|
|
#endif
|
|
|
|
} L2_NOTIFICATION_DATA, *PL2_NOTIFICATION_DATA;
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif // _L2CMN_H
|
|
|