- Add DDK.
Added: trunk/reactos/include/ddk/
Added: trunk/reactos/include/ddk/afilter.h
Added: trunk/reactos/include/ddk/atm.h
Added: trunk/reactos/include/ddk/batclass.h
Added: trunk/reactos/include/ddk/cfg.h
Added: trunk/reactos/include/ddk/cfgmgr32.h
Added: trunk/reactos/include/ddk/csq.h
Added: trunk/reactos/include/ddk/d3dhal.h
Added: trunk/reactos/include/ddk/d3dnthal.h
Added: trunk/reactos/include/ddk/d4drvif.h
Added: trunk/reactos/include/ddk/d4iface.h
Added: trunk/reactos/include/ddk/dciddi.h
Added: trunk/reactos/include/ddk/ddkernel.h
Added: trunk/reactos/include/ddk/ddkmapi.h
Added: trunk/reactos/include/ddk/ddrawi.h
Added: trunk/reactos/include/ddk/ddrawint.h
Added: trunk/reactos/include/ddk/dmemmgr.h
Added: trunk/reactos/include/ddk/dvp.h
Added: trunk/reactos/include/ddk/hidclass.h
Added: trunk/reactos/include/ddk/hidpi.h
Added: trunk/reactos/include/ddk/hidusage.h
Added: trunk/reactos/include/ddk/ide.h
Added: trunk/reactos/include/ddk/kbdmou.h
Added: trunk/reactos/include/ddk/mcd.h
Added: trunk/reactos/include/ddk/miniport.h
Added: trunk/reactos/include/ddk/minitape.h
Added: trunk/reactos/include/ddk/mountdev.h
Added: trunk/reactos/include/ddk/mountmgr.h
Added: trunk/reactos/include/ddk/ndis.h
Added: trunk/reactos/include/ddk/ndisguid.h
Added: trunk/reactos/include/ddk/ndistapi.h
Added: trunk/reactos/include/ddk/ndiswan.h
Added: trunk/reactos/include/ddk/netevent.h
Added: trunk/reactos/include/ddk/netpnp.h
Added: trunk/reactos/include/ddk/newdev.h
Added: trunk/reactos/include/ddk/ntagp.h
Added: trunk/reactos/include/ddk/ntdd8042.h
Added: trunk/reactos/include/ddk/ntddbeep.h
Added: trunk/reactos/include/ddk/ntddcdrm.h
Added: trunk/reactos/include/ddk/ntddcdvd.h
Added: trunk/reactos/include/ddk/ntddchgr.h
Added: trunk/reactos/include/ddk/ntdddisk.h
Added: trunk/reactos/include/ddk/ntddk.h
Added: trunk/reactos/include/ddk/ntddkbd.h
Added: trunk/reactos/include/ddk/ntddmou.h
Added: trunk/reactos/include/ddk/ntddndis.h
Added: trunk/reactos/include/ddk/ntddpar.h
Added: trunk/reactos/include/ddk/ntddpcm.h
Added: trunk/reactos/include/ddk/ntddscsi.h
Added: trunk/reactos/include/ddk/ntddser.h
Added: trunk/reactos/include/ddk/ntddstor.h
Added: trunk/reactos/include/ddk/ntddtape.h
Added: trunk/reactos/include/ddk/ntddtdi.h
Added: trunk/reactos/include/ddk/ntddvdeo.h
Added: trunk/reactos/include/ddk/ntddvol.h
Added: trunk/reactos/include/ddk/ntifs.h
Added: trunk/reactos/include/ddk/ntnls.h
Added: trunk/reactos/include/ddk/ntpoapi.h
Added: trunk/reactos/include/ddk/ntstatus.h
Added: trunk/reactos/include/ddk/parallel.h
Added: trunk/reactos/include/ddk/pfhook.h
Added: trunk/reactos/include/ddk/poclass.h
Added: trunk/reactos/include/ddk/prntfont.h
Added: trunk/reactos/include/ddk/scsi.h
Added: trunk/reactos/include/ddk/scsiscan.h
Added: trunk/reactos/include/ddk/scsiwmi.h
Added: trunk/reactos/include/ddk/smbus.h
Added: trunk/reactos/include/ddk/srb.h
Added: trunk/reactos/include/ddk/storport.h
Added: trunk/reactos/include/ddk/tdi.h
Added: trunk/reactos/include/ddk/tdiinfo.h
Added: trunk/reactos/include/ddk/tdikrnl.h
Added: trunk/reactos/include/ddk/tdistat.h
Added: trunk/reactos/include/ddk/tvout.h
Added: trunk/reactos/include/ddk/upssvc.h
Added: trunk/reactos/include/ddk/usb.h
Added: trunk/reactos/include/ddk/usb100.h
Added: trunk/reactos/include/ddk/usbcamdi.h
Added: trunk/reactos/include/ddk/usbdi.h
Added: trunk/reactos/include/ddk/usbioctl.h
Added: trunk/reactos/include/ddk/usbiodef.h
Added: trunk/reactos/include/ddk/usbscan.h
Added: trunk/reactos/include/ddk/usbuser.h
Added: trunk/reactos/include/ddk/video.h
Added: trunk/reactos/include/ddk/videoagp.h
Added: trunk/reactos/include/ddk/wdmguid.h
Added: trunk/reactos/include/ddk/win2k.h
Added: trunk/reactos/include/ddk/winddi.h
Added: trunk/reactos/include/ddk/winddk.h
Added: trunk/reactos/include/ddk/winnt4.h
Added: trunk/reactos/include/ddk/winxp.h
Added: trunk/reactos/include/ddk/ws2san.h
Added: trunk/reactos/include/ddk/xfilter.h

Added: trunk/reactos/include/ddk/afilter.h
--- trunk/reactos/include/ddk/afilter.h	2006-01-28 18:22:54 UTC (rev 17)
+++ trunk/reactos/include/ddk/afilter.h	2006-01-28 18:25:42 UTC (rev 18)
@@ -0,0 +1,189 @@
+/*
+ * afilter.h
+ *
+ * Address filtering for NDIS MACs
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Filip Navara <xnavara@volny.cz>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef _ARC_FILTER_DEFS_
+#define _ARC_FILTER_DEFS_
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define ARC_RECEIVE_BUFFERS            64
+#define ARCNET_ADDRESS_LEN             1
+#define ARC_PROTOCOL_HEADER_SIZE       (sizeof(ARC_PROTOCOL_HEADER))
+#define ARC_MAX_FRAME_SIZE             504
+#define ARC_MAX_ADDRESS_IDS            256
+#define ARC_MAX_FRAME_HEADER_SIZE      6
+#define ARC_MAX_PACKET_SIZE            576
+#define ARC_FILTER_MAX_OPENS           (sizeof(ULONG) * 8)
+
+#define ARC_IS_BROADCAST(Address) (BOOLEAN)(!(Address))
+
+#define ARC_QUERY_FILTER_CLASSES(Filter) ((Filter)->CombinedPacketFilter)
+#define ARC_QUERY_PACKET_FILTER(Filter, NdisFilterHandle) \
+        (((PARC_BINDING_INFO)(NdisFilterHandle))->PacketFilters)
+
+typedef ULONG MASK, *PMASK;
+
+typedef struct _ARC_BUFFER_LIST
+{
+  PVOID  Buffer;
+  UINT  Size;
+  UINT  BytesLeft;
+  struct _ARC_BUFFER_LIST  *Next;
+} ARC_BUFFER_LIST, *PARC_BUFFER_LIST;
+
+typedef struct _ARC_PROTOCOL_HEADER
+{
+  UCHAR  SourceId[ARCNET_ADDRESS_LEN];
+  UCHAR  DestId[ARCNET_ADDRESS_LEN];
+  UCHAR  ProtId;
+} ARC_PROTOCOL_HEADER, *PARC_PROTOCOL_HEADER;
+
+typedef struct _ARC_PACKET_HEADER
+{
+  ARC_PROTOCOL_HEADER  ProtHeader;
+  USHORT  FrameSequence;
+  UCHAR  SplitFlag;
+  UCHAR  LastSplitFlag;
+  UCHAR  FramesReceived;
+} ARC_PACKET_HEADER, *PARC_PACKET_HEADER;
+
+typedef struct _ARC_PACKET
+{
+  ARC_PACKET_HEADER  Header;
+  struct _ARC_PACKET  *Next;
+  ULONG  TotalLength;
+  BOOLEAN  LastFrame;
+  PARC_BUFFER_LIST  FirstBuffer;
+  PARC_BUFFER_LIST  LastBuffer;
+  NDIS_PACKET  TmpNdisPacket;
+} ARC_PACKET, *PARC_PACKET;
+
+typedef struct _ARC_BINDING_INFO
+{
+  PNDIS_OPEN_BLOCK  NdisBindingHandle;
+  PVOID  Reserved;
+  UINT  PacketFilters;
+  ULONG  References;
+  struct _ARC_BINDING_INFO  *NextOpen;
+  BOOLEAN  ReceivedAPacket;
+  UINT  OldPacketFilters;
+} ARC_BINDING_INFO,*PARC_BINDING_INFO;
+
+typedef struct _ARC_FILTER
+{
+  struct _NDIS_MINIPORT_BLOCK  *Miniport;
+  UINT  CombinedPacketFilter;
+  PARC_BINDING_INFO  OpenList;
+  NDIS_HANDLE  ReceiveBufferPool;
+  PARC_BUFFER_LIST  FreeBufferList;
+  PARC_PACKET  FreePackets;
+  PARC_PACKET  OutstandingPackets;
+  UCHAR  AdapterAddress;
+  UINT  OldCombinedPacketFilter;
+} ARC_FILTER,*PARC_FILTER;
+
+BOOLEAN
+DDKAPI
+ArcCreateFilter(
+  IN struct _NDIS_MINIPORT_BLOCK  *Miniport,
+  IN UCHAR  AdapterAddress,
+  OUT PARC_FILTER  *Filter);
+
+VOID
+DDKAPI
+ArcDeleteFilter(
+  IN PARC_FILTER Filter);
+
+BOOLEAN
+DDKAPI
+ArcNoteFilterOpenAdapter(
+  IN PARC_FILTER  Filter,
+  IN NDIS_HANDLE  NdisBindingHandle,
+  OUT PNDIS_HANDLE  NdisFilterHandle);
+
+NDIS_STATUS
+DDKAPI
+ArcDeleteFilterOpenAdapter(
+  IN PARC_FILTER  Filter,
+  IN NDIS_HANDLE  NdisFilterHandle,
+  IN PNDIS_REQUEST  NdisRequest);
+
+NDIS_STATUS
+DDKAPI
+ArcFilterAdjust(
+  IN PARC_FILTER  Filter,
+  IN NDIS_HANDLE  NdisFilterHandle,
+  IN PNDIS_REQUEST  NdisRequest,
+  IN UINT  FilterClasses,
+  IN BOOLEAN  Set);
+
+VOID
+DDKAPI
+ArcFilterDprIndicateReceiveComplete(
+  IN PARC_FILTER  Filter);
+
+VOID
+DDKAPI
+ArcFilterDprIndicateReceive(
+  IN PARC_FILTER  Filter,
+  IN PUCHAR  pRawHeader,
+  IN PUCHAR  pData,
+  IN UINT  Length);
+
+NDIS_STATUS
+DDKAPI
+ArcFilterTransferData(
+  IN PARC_FILTER  Filter,
+  IN NDIS_HANDLE  MacReceiveContext,
+  IN UINT  ByteOffset,
+  IN UINT  BytesToTransfer,
+  OUT PNDIS_PACKET  Packet,
+  OUT PUINT  BytesTransfered);
+
+VOID
+DDKAPI
+ArcFreeNdisPacket(
+  IN PARC_PACKET  Packet);
+
+VOID
+DDKAPI
+ArcFilterDoIndication(
+  IN PARC_FILTER  Filter,
+  IN PARC_PACKET  Packet);
+
+VOID
+DDKAPI
+ArcDestroyPacket(
+  IN PARC_FILTER  Filter,
+  IN PARC_PACKET  Packet);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ARC_FILTER_DEFS_ */

Added: trunk/reactos/include/ddk/atm.h
--- trunk/reactos/include/ddk/atm.h	2006-01-28 18:22:54 UTC (rev 17)
+++ trunk/reactos/include/ddk/atm.h	2006-01-28 18:25:42 UTC (rev 18)
@@ -0,0 +1,507 @@
+/*
+ * atm.h
+ *
+ * ATM support
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef _ATM_H
+#define _ATM_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+typedef ULONG	ATM_ADDRESSTYPE;
+
+#define SAP_TYPE_NSAP			                1
+#define SAP_TYPE_E164			                2
+
+#define ATM_MEDIA_SPECIFIC                1
+
+#define CALLMGR_SPECIFIC_Q2931            1
+
+#define	ATM_NSAP				                  0
+#define	ATM_E164				                  1
+
+#define	ATM_MAC_ADDRESS_LENGTH	          6
+#define	ATM_ADDRESS_LENGTH		            20
+
+typedef ULONG	ATM_AAL_TYPE, *PATM_AAL_TYPE;
+
+#define	AAL_TYPE_AAL0			                1
+#define	AAL_TYPE_AAL1			                2
+#define	AAL_TYPE_AAL34			              4
+#define	AAL_TYPE_AAL5			                8
+
+#define ATM_ADDR_BLANK_CHAR				        L' '
+#define ATM_ADDR_E164_START_CHAR		      L'+'
+#define ATM_ADDR_PUNCTUATION_CHAR		      L'.'
+
+typedef enum {
+	IE_AALParameters,
+	IE_TrafficDescriptor,
+	IE_BroadbandBearerCapability,
+	IE_BHLI,
+	IE_BLLI,
+	IE_CalledPartyNumber,
+	IE_CalledPartySubaddress,
+	IE_CallingPartyNumber,
+	IE_CallingPartySubaddress,
+	IE_Cause,
+	IE_QOSClass,
+	IE_TransitNetworkSelection,
+	IE_BroadbandSendingComplete,
+	IE_LIJCallId,
+	IE_Raw
+} Q2931_IE_TYPE;
+
+typedef struct _Q2931_IE {
+  Q2931_IE_TYPE  IEType;
+  ULONG  IELength;
+  UCHAR  IE[1];
+} Q2931_IE, *PQ2931_IE;
+
+typedef struct _AAL1_PARAMETERS {
+  UCHAR  Subtype;
+  UCHAR  CBRRate;
+  USHORT  Multiplier;
+  UCHAR  SourceClockRecoveryMethod;
+  UCHAR  ErrorCorrectionMethod;
+  USHORT  StructuredDataTransferBlocksize;
+  UCHAR  PartiallyFilledCellsMethod;
+} AAL1_PARAMETERS, *PAAL1_PARAMETERS;
+
+typedef struct _AAL34_PARAMETERS {
+  USHORT  ForwardMaxCPCSSDUSize;
+  USHORT  BackwardMaxCPCSSDUSize;
+  USHORT  LowestMID;
+  USHORT  HighestMID;
+  UCHAR  SSCSType;
+} AAL34_PARAMETERS, *PAAL34_PARAMETERS;
+
+/* AAL5_PARAMETERS.Mode constants */
+#define AAL5_MODE_MESSAGE			            0x01
+#define AAL5_MODE_STREAMING			          0x02
+
+/* AAL5_PARAMETERS.SSCSType constants */
+#define AAL5_SSCS_NULL				            0x00
+#define AAL5_SSCS_SSCOP_ASSURED		        0x01
+#define AAL5_SSCS_SSCOP_NON_ASSURED	      0x02
+#define AAL5_SSCS_FRAME_RELAY		          0x04
+
+typedef struct _AAL5_PARAMETERS {
+  ULONG  ForwardMaxCPCSSDUSize;
+  ULONG  BackwardMaxCPCSSDUSize;
+  UCHAR  Mode;
+  UCHAR  SSCSType;
+} AAL5_PARAMETERS, *PAAL5_PARAMETERS;
+
+typedef struct _AALUSER_PARAMETERS {
+  ULONG  UserDefined;
+} AALUSER_PARAMETERS, *PAALUSER_PARAMETERS;
+
+typedef struct _AAL_PARAMETERS_IE {
+  ATM_AAL_TYPE  AALType;
+  union {
+    AAL1_PARAMETERS  AAL1Parameters;
+    AAL34_PARAMETERS  AAL34Parameters;
+    AAL5_PARAMETERS  AAL5Parameters;
+    AALUSER_PARAMETERS  AALUserParameters;
+  } AALSpecificParameters;
+} AAL_PARAMETERS_IE, *PAAL_PARAMETERS_IE;
+
+
+/* FIXME: Should the union be anonymous in C++ too?  If so,
+   can't define named types _ATM_AAL5_INFO and _ATM_AAL0_INFO
+   within anonymous union for C++. */
+typedef struct _ATM_AAL_OOB_INFO
+{
+	ATM_AAL_TYPE  AalType;
+#ifndef __cplusplus
+	_ANONYMOUS_UNION
+#endif
+	union {
+		struct _ATM_AAL5_INFO {
+			BOOLEAN  CellLossPriority;
+			UCHAR  UserToUserIndication;
+			UCHAR  CommonPartIndicator;
+		} ATM_AAL5_INFO;
+
+		struct _ATM_AAL0_INFO {
+			BOOLEAN  CellLossPriority;
+			UCHAR  PayLoadTypeIdentifier;
+		} ATM_AAL0_INFO;
+#ifndef __cplusplus
+	} DUMMYUNIONNAME;
+#else
+	} u;
+#endif
+} ATM_AAL_OOB_INFO, *PATM_AAL_OOB_INFO;
+
+typedef struct _ATM_ADDRESS  {
+  ATM_ADDRESSTYPE  AddressType;
+  ULONG  NumberOfDigits;
+  UCHAR  Address[ATM_ADDRESS_LENGTH];
+} ATM_ADDRESS, *PATM_ADDRESS;
+
+/* ATM_BHLI_IE.HighLayerInfoType constants */
+#define BHLI_ISO				                  0x00
+#define BHLI_UserSpecific		              0x01
+#define BHLI_HighLayerProfile	            0x02
+#define BHLI_VendorSpecificAppId          0x03
+
+typedef struct _ATM_BHLI_IE {
+  ULONG  HighLayerInfoType;
+  ULONG  HighLayerInfoLength;
+  UCHAR  HighLayerInfo[8];
+} ATM_BHLI_IE, *PATM_BHLI_IE;
+
+/* ATM_BLLI_IE.Layer2Protocol constants */
+#define BLLI_L2_ISO_1745		              0x01
+#define BLLI_L2_Q921			                0x02
+#define BLLI_L2_X25L			                0x06
+#define BLLI_L2_X25M			                0x07
+#define BLLI_L2_ELAPB			                0x08
+#define BLLI_L2_HDLC_ARM		              0x09
+#define BLLI_L2_HDLC_NRM		              0x0A
+#define BLLI_L2_HDLC_ABM		              0x0B
+#define BLLI_L2_LLC				                0x0C
+#define BLLI_L2_X75				                0x0D
+#define BLLI_L2_Q922			                0x0E
+#define BLLI_L2_USER_SPECIFIED            0x10
+#define BLLI_L2_ISO_7776		              0x11
+
+/* ATM_BLLI_IE.Layer3Protocol constants */
+#define BLLI_L3_X25				                0x06
+#define BLLI_L3_ISO_8208		              0x07
+#define BLLI_L3_X223			                0x08
+#define BLLI_L3_SIO_8473		              0x09
+#define BLLI_L3_T70				                0x0A
+#define BLLI_L3_ISO_TR9577		            0x0B
+#define BLLI_L3_USER_SPECIFIED	          0x10
+
+/* ATM_BLLI_IE.Layer3IPI constants */
+#define BLLI_L3_IPI_SNAP		              0x80
+#define BLLI_L3_IPI_IP			              0xCC
+
+typedef struct _ATM_BLLI_IE {
+  ULONG  Layer2Protocol;
+  UCHAR  Layer2Mode;
+  UCHAR  Layer2WindowSize;
+  ULONG  Layer2UserSpecifiedProtocol;
+  ULONG  Layer3Protocol;
+  UCHAR  Layer3Mode;
+  UCHAR  Layer3DefaultPacketSize;
+  UCHAR  Layer3PacketWindowSize;
+  ULONG  Layer3UserSpecifiedProtocol;
+  ULONG  Layer3IPI;
+  UCHAR  SnapId[5];
+} ATM_BLLI_IE, *PATM_BLLI_IE;
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.BearerClass constants */
+#define BCOB_A					                  0x00
+#define BCOB_C					                  0x01
+#define BCOB_X					                  0x02
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TrafficType constants */
+#define TT_NOIND				                  0x00
+#define TT_CBR					                  0x04
+#define TT_VBR					                  0x08
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.TimingRequirements constants */
+#define TR_NOIND				                  0x00
+#define TR_END_TO_END			                0x01
+#define TR_NO_END_TO_END		              0x02
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.ClippingSusceptability constants */
+#define CLIP_NOT				                  0x00
+#define CLIP_SUS				                  0x20
+
+/* ATM_BROADBAND_BEARER_CAPABILITY_IE.UserPlaneConnectionConfig constants */
+#define UP_P2P					                  0x00
+#define UP_P2MP					                  0x01
+
+typedef struct _ATM_BROADBAND_BEARER_CAPABILITY_IE {
+  UCHAR  BearerClass;
+  UCHAR  TrafficType;
+  UCHAR  TimingRequirements;
+  UCHAR  ClippingSusceptability;
+  UCHAR  UserPlaneConnectionConfig;
+} ATM_BROADBAND_BEARER_CAPABILITY_IE, *PATM_BROADBAND_BEARER_CAPABILITY_IE;
+
+typedef struct _ATM_BROADBAND_SENDING_COMPLETE_IE {
+  UCHAR  SendingComplete;
+} ATM_BROADBAND_SENDING_COMPLETE_IE, *PATM_BROADBAND_SENDING_COMPLETE_IE;
+
+typedef struct _ATM_CALLING_PARTY_NUMBER_IE {
+  ATM_ADDRESS  Number;
+  UCHAR  PresentationIndication;
+  UCHAR  ScreeningIndicator;
+} ATM_CALLING_PARTY_NUMBER_IE, *PATM_CALLING_PARTY_NUMBER_IE;
+
+/* ATM_CAUSE_IE.Location constants */
+#define ATM_CAUSE_LOC_USER                    0x00
+#define ATM_CAUSE_LOC_PRIVATE_LOCAL           0x01
+#define ATM_CAUSE_LOC_PUBLIC_LOCAL            0x02
+#define ATM_CAUSE_LOC_TRANSIT_NETWORK         0x03
+#define ATM_CAUSE_LOC_PUBLIC_REMOTE           0x04
+#define ATM_CAUSE_LOC_PRIVATE_REMOTE          0x05
+#define ATM_CAUSE_LOC_INTERNATIONAL_NETWORK   0x07
+#define ATM_CAUSE_LOC_BEYOND_INTERWORKING     0x0A
+
+/* ATM_CAUSE_IE.Cause constants */
+#define ATM_CAUSE_UNALLOCATED_NUMBER                0x01
+#define ATM_CAUSE_NO_ROUTE_TO_TRANSIT_NETWORK       0x02
+#define ATM_CAUSE_NO_ROUTE_TO_DESTINATION           0x03
+#define ATM_CAUSE_VPI_VCI_UNACCEPTABLE              0x0A
+#define ATM_CAUSE_NORMAL_CALL_CLEARING              0x10
+#define ATM_CAUSE_USER_BUSY                         0x11
+#define ATM_CAUSE_NO_USER_RESPONDING                0x12
+#define ATM_CAUSE_CALL_REJECTED                     0x15
+#define ATM_CAUSE_NUMBER_CHANGED                    0x16
+#define ATM_CAUSE_USER_REJECTS_CLIR                 0x17
+#define ATM_CAUSE_DESTINATION_OUT_OF_ORDER          0x1B
+#define ATM_CAUSE_INVALID_NUMBER_FORMAT             0x1C
+#define ATM_CAUSE_STATUS_ENQUIRY_RESPONSE           0x1E
+#define ATM_CAUSE_NORMAL_UNSPECIFIED                0x1F
+#define ATM_CAUSE_VPI_VCI_UNAVAILABLE               0x23
+#define ATM_CAUSE_NETWORK_OUT_OF_ORDER              0x26
+#define ATM_CAUSE_TEMPORARY_FAILURE                 0x29
+#define ATM_CAUSE_ACCESS_INFORMAION_DISCARDED       0x2B
+#define ATM_CAUSE_NO_VPI_VCI_AVAILABLE              0x2D
+#define ATM_CAUSE_RESOURCE_UNAVAILABLE              0x2F
+#define ATM_CAUSE_QOS_UNAVAILABLE                   0x31
+#define ATM_CAUSE_USER_CELL_RATE_UNAVAILABLE        0x33
+#define ATM_CAUSE_BEARER_CAPABILITY_UNAUTHORIZED    0x39
+#define ATM_CAUSE_BEARER_CAPABILITY_UNAVAILABLE     0x3A
+#define ATM_CAUSE_OPTION_UNAVAILABLE                0x3F
+#define ATM_CAUSE_BEARER_CAPABILITY_UNIMPLEMENTED   0x41
+#define ATM_CAUSE_UNSUPPORTED_TRAFFIC_PARAMETERS    0x49
+#define ATM_CAUSE_INVALID_CALL_REFERENCE            0x51
+#define ATM_CAUSE_CHANNEL_NONEXISTENT               0x52
+#define ATM_CAUSE_INCOMPATIBLE_DESTINATION          0x58
+#define ATM_CAUSE_INVALID_ENDPOINT_REFERENCE        0x59
+#define ATM_CAUSE_INVALID_TRANSIT_NETWORK_SELECTION 0x5B
+#define ATM_CAUSE_TOO_MANY_PENDING_ADD_PARTY        0x5C
+#define ATM_CAUSE_AAL_PARAMETERS_UNSUPPORTED        0x5D
+#define ATM_CAUSE_MANDATORY_IE_MISSING              0x60
+#define ATM_CAUSE_UNIMPLEMENTED_MESSAGE_TYPE        0x61
+#define ATM_CAUSE_UNIMPLEMENTED_IE                  0x63
+#define ATM_CAUSE_INVALID_IE_CONTENTS               0x64
+#define ATM_CAUSE_INVALID_STATE_FOR_MESSAGE         0x65
+#define ATM_CAUSE_RECOVERY_ON_TIMEOUT               0x66
+#define ATM_CAUSE_INCORRECT_MESSAGE_LENGTH          0x68
+#define ATM_CAUSE_PROTOCOL_ERROR                    0x6F
+
+/* ATM_CAUSE_IE.Diagnostics constants */
+#define ATM_CAUSE_COND_UNKNOWN            0x00
+#define ATM_CAUSE_COND_PERMANENT          0x01
+#define ATM_CAUSE_COND_TRANSIENT          0x02
+#define ATM_CAUSE_REASON_USER             0x00
+#define ATM_CAUSE_REASON_IE_MISSING       0x04
+#define ATM_CAUSE_REASON_IE_INSUFFICIENT  0x08
+#define ATM_CAUSE_PU_PROVIDER             0x00
+#define ATM_CAUSE_PU_USER                 0x08
+#define ATM_CAUSE_NA_NORMAL               0x00
+#define ATM_CAUSE_NA_ABNORMAL             0x04
+
+typedef struct _ATM_CAUSE_IE {
+  UCHAR  Location;
+  UCHAR  Cause;
+  UCHAR  DiagnosticsLength;
+  UCHAR  Diagnostics[4];
+} ATM_CAUSE_IE, *PATM_CAUSE_IE;
+
+
+typedef ULONG	ATM_SERVICE_CATEGORY, *PATM_SERVICE_CATEGORY;
+
+/* ATM_FLOW_PARAMETERS.ServiceCategory constants */
+#define	ATM_SERVICE_CATEGORY_CBR	        1
+#define	ATM_SERVICE_CATEGORY_VBR	        2
+#define	ATM_SERVICE_CATEGORY_UBR	        4
+#define	ATM_SERVICE_CATEGORY_ABR	        8
+
+/* ATM_FLOW_PARAMETERS.Reserved1 constants */
+#define ATM_FLOW_PARAMS_RSVD1_MPP	        0x01
+
+typedef struct _ATM_FLOW_PARAMETERS {
+  ATM_SERVICE_CATEGORY  ServiceCategory;
+  ULONG  AverageCellRate;
+  ULONG  PeakCellRate;
+  ULONG  MinimumCellRate;
+  ULONG  InitialCellRate;
+  ULONG  BurstLengthCells;
+  ULONG  MaxSduSize;
+  ULONG  TransientBufferExposure;
+  ULONG  CumulativeRMFixedRTT;
+  UCHAR  RateIncreaseFactor;
+  UCHAR  RateDecreaseFactor;
+  USHORT  ACRDecreaseTimeFactor;
+  UCHAR  MaximumCellsPerForwardRMCell;
+  UCHAR  MaximumForwardRMCellInterval;
+  UCHAR  CutoffDecreaseFactor;
+  UCHAR  Reserved1;
+  ULONG  MissingRMCellCount;
+  ULONG  Reserved2;
+  ULONG  Reserved3;
+} ATM_FLOW_PARAMETERS, *PATM_FLOW_PARAMETERS;
+
+typedef struct _ATM_VPIVCI {
+  ULONG  Vpi;
+  ULONG  Vci;
+} ATM_VPIVCI, *PATM_VPIVCI;
+
+typedef struct _ATM_MEDIA_PARAMETERS {
+  ATM_VPIVCI  ConnectionId;
+  ATM_AAL_TYPE  AALType;
+  ULONG  CellDelayVariationCLP0;
+  ULONG  CellDelayVariationCLP1;
+  ULONG  CellLossRatioCLP0;
+  ULONG  CellLossRatioCLP1;
+  ULONG  CellTransferDelayCLP0;
+  ULONG  CellTransferDelayCLP1;
+  ULONG  DefaultCLP;
+  ATM_FLOW_PARAMETERS  Transmit;
+  ATM_FLOW_PARAMETERS  Receive;
+} ATM_MEDIA_PARAMETERS, *PATM_MEDIA_PARAMETERS;
+
+typedef struct _ATM_PVC_SAP {
+  ATM_BLLI_IE  Blli;
+  ATM_BHLI_IE  Bhli;
+} ATM_PVC_SAP, *PATM_PVC_SAP;
+
+/* ATM_QOS_CLASS_IE constants */
+#define QOS_CLASS0				                0x00
+#define QOS_CLASS1				                0x01
+#define QOS_CLASS2				                0x02
+#define QOS_CLASS3				                0x03
+#define QOS_CLASS4				                0x04
+
+typedef struct _ATM_QOS_CLASS_IE {
+  UCHAR  QOSClassForward;
+  UCHAR  QOSClassBackward;
+} ATM_QOS_CLASS_IE, *PATM_QOS_CLASS_IE;
+
+typedef struct _ATM_RAW_IE {
+  ULONG  RawIELength;
+  ULONG  RawIEType;
+  UCHAR  RawIEValue[1];
+} ATM_RAW_IE, *PATM_RAW_IE;
+
+typedef struct _ATM_SAP {
+  ATM_BLLI_IE  Blli;
+  ATM_BHLI_IE  Bhli;
+  ULONG  NumberOfAddresses;
+  UCHAR  Addresses[1];
+} ATM_SAP, *PATM_SAP;
+
+typedef struct _ATM_TRAFFIC_DESCRIPTOR {
+  ULONG  PeakCellRateCLP0;
+  ULONG  PeakCellRateCLP01;
+  ULONG  SustainableCellRateCLP0;
+  ULONG  SustainableCellRateCLP01;
+  ULONG  MaximumBurstSizeCLP0;
+  ULONG  MaximumBurstSizeCLP01;
+  BOOLEAN  BestEffort;
+  BOOLEAN  Tagging;
+} ATM_TRAFFIC_DESCRIPTOR, *PATM_TRAFFIC_DESCRIPTOR;
+
+typedef struct _ATM_TRAFFIC_DESCRIPTOR_IE {
+  ATM_TRAFFIC_DESCRIPTOR  ForwardTD;
+  ATM_TRAFFIC_DESCRIPTOR  BackwardTD;
+  BOOLEAN  BestEffort;
+} ATM_TRAFFIC_DESCRIPTOR_IE, *PATM_TRAFFIC_DESCRIPTOR_IE;
+
+/* ATM_TRANSIT_NETWORK_SELECTION_IE.TypeOfNetworkId constants */
+#define TNS_TYPE_NATIONAL			            0x40
+
+/* ATM_TRANSIT_NETWORK_SELECTION_IE.NetworkIdPlan constants */
+#define TNS_PLAN_CARRIER_ID_CODE	        0x01
+
+typedef struct _ATM_TRANSIT_NETWORK_SELECTION_IE {
+  UCHAR  TypeOfNetworkId;
+  UCHAR  NetworkIdPlan;
+  UCHAR  NetworkIdLength;
+  UCHAR  NetworkId[1];
+} ATM_TRANSIT_NETWORK_SELECTION_IE, *PATM_TRANSIT_NETWORK_SELECTION_IE;
+
+typedef struct _ATM_LIJ_CALLID_IE {
+	ULONG  Identifier;
+} ATM_LIJ_CALLID_IE, *PATM_LIJ_CALLID_IE;
+
+/* Q2931_ADD_PVC.Flags constants */
+#define CO_FLAG_SIGNALING_VC              0x00000001
+#define CO_FLAG_NO_DEST_SAP               0x00000002
+
+typedef struct _Q2931_ADD_PVC {
+  ATM_ADDRESS  CalledParty;
+  ATM_ADDRESS  CallingParty;
+  ATM_VPIVCI  ConnectionId;
+  ATM_AAL_TYPE  AALType;
+  ATM_FLOW_PARAMETERS  ForwardFP;
+  ATM_FLOW_PARAMETERS  BackwardFP;
+  ULONG  Flags;
+  ATM_PVC_SAP  LocalSap;
+  ATM_PVC_SAP  DestinationSap;
+  BOOLEAN  LIJIdPresent;
+  ATM_LIJ_CALLID_IE  LIJId;
+} Q2931_ADD_PVC, *PQ2931_ADD_PVC;
+
+typedef struct _Q2931_DELETE_PVC {
+  ATM_VPIVCI  ConnectionId;
+} Q2931_DELETE_PVC, *PQ2931_DELETE_PVC;
+
+typedef ATM_ADDRESS	ATM_CALLED_PARTY_NUMBER_IE;
+typedef ATM_ADDRESS	ATM_CALLED_PARTY_SUBADDRESS_IE;
+typedef ATM_ADDRESS	ATM_CALLING_PARTY_SUBADDRESS_IE;
+
+typedef struct _Q2931_CALLMGR_PARAMETERS {
+  ATM_ADDRESS  CalledParty;
+  ATM_ADDRESS  CallingParty;
+  ULONG  InfoElementCount;
+  UCHAR  InfoElements[1];
+} Q2931_CALLMGR_PARAMETERS, *PQ2931_CALLMGR_PARAMETERS;
+
+typedef struct _ATM_VC_RATES_SUPPORTED {
+  ULONG  MinCellRate;
+  ULONG  MaxCellRate;
+} ATM_VC_RATES_SUPPORTED, *PATM_VC_RATES_SUPPORTED;
+
+typedef ULONG ATM_SERVICE_REGISTRY_TYPE;
+
+/* ATM_SERVICE_ADDRESS_LIST.ServiceRegistryType constants */
+#define ATM_SERVICE_REGISTRY_LECS		      1
+#define ATM_SERVICE_REGISTRY_ANS		      2
+
+typedef struct _ATM_SERVICE_ADDRESS_LIST {
+  ATM_SERVICE_REGISTRY_TYPE  ServiceRegistryType;
+  ULONG  NumberOfAddressesAvailable;
+  ULONG  NumberOfAddressesReturned;
+  ATM_ADDRESS  Address[1];
+} ATM_SERVICE_ADDRESS_LIST, *PATM_SERVICE_ADDRESS_LIST;
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _ATM_H */

Added: trunk/reactos/include/ddk/batclass.h
--- trunk/reactos/include/ddk/batclass.h	2006-01-28 18:22:54 UTC (rev 17)
+++ trunk/reactos/include/ddk/batclass.h	2006-01-28 18:25:42 UTC (rev 18)
@@ -0,0 +1,296 @@
+/*
+ * batclass.h
+ *
+ * Battery class driver interface
+ *
+ * This file is part of the w32api package.
+ *
+ * Contributors:
+ *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
+ *
+ * THIS SOFTWARE IS NOT COPYRIGHTED
+ *
+ * This source code is offered for use in the public domain. You may
+ * use, modify or distribute it freely.
+ *
+ * This code is distributed in the hope that it will be useful but
+ * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
+ * DISCLAIMED. This includes but is not limited to warranties of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ *
+ */
+
+#ifndef __BATCLASS_H
+#define __BATCLASS_H
+
+#if __GNUC__ >=3
+#pragma GCC system_header
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if defined(_BATTERYCLASS_)
+  #define BCLASSAPI DECLSPEC_EXPORT
+#else
+  #define BCLASSAPI DECLSPEC_IMPORT
+#endif
+
+
+/* Battery device GUIDs */
+
+DEFINE_GUID(GUID_DEVICE_BATTERY,
+  0x72631e54L, 0x78A4, 0x11d0, 0xbc, 0xf7, 0x00, 0xaa, 0x00, 0xb7, 0xb3, 0x2a);
+
+DEFINE_GUID(BATTERY_STATUS_WMI_GUID,
+  0xfc4670d1, 0xebbf, 0x416e, 0x87, 0xce, 0x37, 0x4a, 0x4e, 0xbc, 0x11, 0x1a);
+
+DEFINE_GUID(BATTERY_RUNTIME_WMI_GUID,
+  0x535a3767, 0x1ac2, 0x49bc, 0xa0, 0x77, 0x3f, 0x7a, 0x02, 0xe4, 0x0a, 0xec);
+
+DEFINE_GUID(BATTERY_TEMPERATURE_WMI_GUID,
+  0x1a52a14d, 0xadce, 0x4a44, 0x9a, 0x3e, 0xc8, 0xd8, 0xf1, 0x5f, 0xf2, 0xc2);
+
+DEFINE_GUID(BATTERY_FULL_CHARGED_CAPACITY_WMI_GUID,
+  0x40b40565, 0x96f7, 0x4435, 0x86, 0x94, 0x97, 0xe0, 0xe4, 0x39, 0x59, 0x05);
+
+DEFINE_GUID(BATTERY_CYCLE_COUNT_WMI_GUID,
+  0xef98db24, 0x0014, 0x4c25, 0xa5, 0x0b, 0xc7, 0x24, 0xae, 0x5c, 0xd3, 0x71);
+
+DEFINE_GUID(BATTERY_STATIC_DATA_WMI_GUID,
+  0x05e1e463, 0xe4e2, 0x4ea9, 0x80, 0xcb, 0x9b, 0xd4, 0xb3, 0xca, 0x06, 0x55);
+
+DEFINE_GUID(BATTERY_STATUS_CHANGE_WMI_GUID,
+  0xcddfa0c3, 0x7c5b, 0x4e43, 0xa0, 0x34, 0x05, 0x9f, 0xa5, 0xb8, 0x43, 0x64);
+
+DEFINE_GUID(BATTERY_TAG_CHANGE_WMI_GUID,
+  0x5e1f6e19, 0x8786, 0x4d23, 0x94, 0xfc, 0x9e, 0x74, 0x6b, 0xd5, 0xd8, 0x88);
+
+
+/* BATTERY_INFORMATION.Capabilities constants */
+#define BATTERY_SET_CHARGE_SUPPORTED      0x00000001
+#define BATTERY_SET_DISCHARGE_SUPPORTED   0x00000002
+#define BATTERY_SET_RESUME_SUPPORTED      0x00000004
+#define BATTERY_IS_SHORT_TERM             0x20000000
+#define BATTERY_CAPACITY_RELATIVE         0x40000000
+#define BATTERY_SYSTEM_BATTERY            0x80000000
+
+typedef struct _BATTERY_INFORMATION {
+  ULONG  Capabilities;
+  UCHAR  Technology;
+  UCHAR  Reserved[3];
+  UCHAR  Chemistry[4];
+  ULONG  DesignedCapacity;
+  ULONG  FullChargedCapacity;
+  ULONG  DefaultAlert1;
+  ULONG  DefaultAlert2;
+  ULONG  CriticalBias;
+  ULONG  CycleCount;
+} BATTERY_INFORMATION, *PBATTERY_INFORMATION;
+
+typedef struct _BATTERY_MANUFACTURE_DATE {
+  UCHAR  Day;
+  UCHAR  Month;
+  USHORT  Year;
+} BATTERY_MANUFACTURE_DATE, *PBATTERY_MANUFACTURE_DATE;
+
+typedef struct _BATTERY_NOTIFY {
+	ULONG  PowerState;
+	ULONG  LowCapacity;
+	ULONG  HighCapacity;
+} BATTERY_NOTIFY, *PBATTERY_NOTIFY;
+
+/* BATTERY_STATUS.PowerState flags */
+#define BATTERY_POWER_ON_LINE             0x00000001
+#define BATTERY_DISCHARGING               0x00000002
+#define BATTERY_CHARGING                  0x00000004
+#define BATTERY_CRITICAL                  0x00000008
+
+/* BATTERY_STATUS.Voltage constant */
+#define BATTERY_UNKNOWN_VOLTAGE           0xFFFFFFFF
+
+/* BATTERY_STATUS.Rate constant */
+#define BATTERY_UNKNOWN_RATE              0x80000000
+
+typedef struct _BATTERY_STATUS {
+  ULONG  PowerState;
+  ULONG  Capacity;
+  ULONG  Voltage;
+  LONG  Rate;
+} BATTERY_STATUS, *PBATTERY_STATUS;
+
+/* BATTERY_INFORMATION.Capacity constants */
+#define BATTERY_UNKNOWN_CAPACITY          0xFFFFFFFF
+
+typedef enum _BATTERY_QUERY_INFORMATION_LEVEL {
+  BatteryInformation = 0,
+  BatteryGranularityInformation,
+  BatteryTemperature,
+  BatteryEstimatedTime,
+  BatteryDeviceName,
+  BatteryManufactureDate,
+  BatteryManufactureName,
+  BatteryUniqueID,
+  BatterySerialNumber
+} BATTERY_QUERY_INFORMATION_LEVEL;
+
+/* BatteryEstimatedTime constant */
+#define BATTERY_UNKNOWN_TIME              0x80000000
+
+/* NTSTATUS possibly returned by BCLASS_QUERY_STATUS */
+#define BATTERY_TAG_INVALID 0
+
+typedef struct _BATTERY_QUERY_INFORMATION {
+  ULONG  BatteryTag;
+  BATTERY_QUERY_INFORMATION_LEVEL  InformationLevel;
+  LONG  AtRate;
+} BATTERY_QUERY_INFORMATION, *PBATTERY_QUERY_INFORMATION;
+
+typedef enum _BATTERY_SET_INFORMATION_LEVEL {
+  BatteryCriticalBias = 0,
+  BatteryCharge,
+  BatteryDischarge
+} BATTERY_SET_INFORMATION_LEVEL;
+
+#define MAX_BATTERY_STRING_SIZE           128
+
+typedef struct _BATTERY_SET_INFORMATION {
+	ULONG  BatteryTag;
+	BATTERY_SET_INFORMATION_LEVEL  InformationLevel;
+	UCHAR  Buffer[1];
+} BATTERY_SET_INFORMATION, *PBATTERY_SET_INFORMATION;
+
+typedef struct _BATTERY_WAIT_STATUS {
+	ULONG  BatteryTag;
+	ULONG  Timeout;
+	ULONG  PowerState;
+	ULONG  LowCapacity;
+	ULONG  HighCapacity;
+} BATTERY_WAIT_STATUS, *PBATTERY_WAIT_STATUS;
+
+
+#define IOCTL_BATTERY_QUERY_TAG \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x10, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_BATTERY_QUERY_INFORMATION \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x11, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+#define IOCTL_BATTERY_SET_INFORMATION \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x12, METHOD_BUFFERED, FILE_WRITE_ACCESS)
+
+#define IOCTL_BATTERY_QUERY_STATUS \
+  CTL_CODE(FILE_DEVICE_BATTERY, 0x13, METHOD_BUFFERED, FILE_READ_ACCESS)
+
+
+typedef NTSTATUS
+(DDKAPI*BCLASS_DISABLE_STATUS_NOTIFY)(
+  IN PVOID  Context);
+
+typedef NTSTATUS
+(DDKAPI*BCLASS_QUERY_INFORMATION)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  IN BATTERY_QUERY_INFORMATION_LEVEL  Level,
+  IN LONG  AtRate  OPTIONAL,
+  OUT PVOID  Buffer,
+  IN ULONG  BufferLength,
+  OUT PULONG  ReturnedLength);
+
+typedef NTSTATUS
+(DDKAPI*BCLASS_QUERY_STATUS)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  OUT PBATTERY_STATUS  BatteryStatus);
+
+typedef NTSTATUS
+(DDKAPI*BCLASS_QUERY_TAG)(
+  IN PVOID  Context,
+  OUT PULONG  BatteryTag);
+
+typedef NTSTATUS
+(DDKAPI*BCLASS_SET_INFORMATION)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  IN BATTERY_SET_INFORMATION_LEVEL  Level,
+  IN PVOID  Buffer  OPTIONAL);
+
+typedef NTSTATUS
+(DDKAPI*BCLASS_SET_STATUS_NOTIFY)(
+  IN PVOID  Context,
+  IN ULONG  BatteryTag,
+  IN PBATTERY_NOTIFY  BatteryNotify);
+
+
+typedef struct _BATTERY_MINIPORT_INFO {
+  USHORT  MajorVersion;
+  USHORT  MinorVersion;
+  PVOID  Context;
+  BCLASS_QUERY_TAG  QueryTag;
+  BCLASS_QUERY_INFORMATION  QueryInformation;
+  BCLASS_SET_INFORMATION  SetInformation;
+  BCLASS_QUERY_STATUS  QueryStatus;
+  BCLASS_SET_STATUS_NOTIFY  SetStatusNotify;
+  BCLASS_DISABLE_STATUS_NOTIFY  DisableStatusNotify;
+  PDEVICE_OBJECT  Pdo;
+  PUNICODE_STRING  DeviceName;
+} BATTERY_MINIPORT_INFO, *PBATTERY_MINIPORT_INFO;
+
+/* BATTERY_MINIPORT_INFO.XxxVersion */
+#define BATTERY_CLASS_MAJOR_VERSION       0x0001
+#define BATTERY_CLASS_MINOR_VERSION       0x0000
+
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassInitializeDevice(
+  IN PBATTERY_MINIPORT_INFO  MiniportInfo,
+  IN PVOID  *ClassData);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassIoctl(
+  IN PVOID  ClassData,
+  IN PIRP  Irp);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassQueryWmiDataBlock(
+  IN PVOID  ClassData,
+  IN PDEVICE_OBJECT  DeviceObject,
+  IN PIRP  Irp,
+  IN ULONG  GuidIndex,
+  IN OUT PULONG  InstanceLengthArray,
+  IN ULONG  OutBufferSize,
+  OUT PUCHAR  Buffer);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassStatusNotify(
+  IN PVOID  ClassData);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassSystemControl(
+  IN  PVOID  ClassData,
+  IN  PWMILIB_CONTEXT  WmiLibContext,
+  IN  PDEVICE_OBJECT  DeviceObject,
+  IN  PIRP  Irp,
+  OUT PSYSCTL_IRP_DISPOSITION  Disposition);
+
+BCLASSAPI
+NTSTATUS
+DDKAPI
+BatteryClassUnload(
[truncated at 1000 lines; 54888 more skipped]