- 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(a)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(a)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(a)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]