ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

ntddpcm.h
Go to the documentation of this file.
00001 /*
00002  * ntddpcm.h
00003  *
00004  * PCMCIA IOCTL interface
00005  *
00006  * This file is part of the w32api package.
00007  *
00008  * Contributors:
00009  *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
00010  *
00011  * THIS SOFTWARE IS NOT COPYRIGHTED
00012  *
00013  * This source code is offered for use in the public domain. You may
00014  * use, modify or distribute it freely.
00015  *
00016  * This code is distributed in the hope that it will be useful but
00017  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
00018  * DISCLAIMED. This includes but is not limited to warranties of
00019  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00020  *
00021  */
00022 
00023 #ifndef _NTDDPCMH_
00024 #define _NTDDPCMH_
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 #define IOCTL_PCMCIA_BASE                 FILE_DEVICE_CONTROLLER
00031 
00032 #define DD_PCMCIA_DEVICE_NAME             "\\\\.\\Pcmcia"
00033 #define DD_PCMCIA_DEVICE_NAME_U           L"\\\\.\\Pcmcia"
00034 
00035 #define IOCTL_GET_TUPLE_DATA \
00036   CTL_CODE(IOCTL_PCMCIA_BASE, 3000, METHOD_BUFFERED, FILE_ANY_ACCESS)
00037 
00038 #define IOCTL_SOCKET_INFORMATION \
00039   CTL_CODE(IOCTL_PCMCIA_BASE, 3004, METHOD_BUFFERED, FILE_ANY_ACCESS)
00040 
00041 #define DEVICE_IDENTIFIER_LENGTH          64
00042 #define DRIVER_NAME_LENGTH                32
00043 #define MANUFACTURER_NAME_LENGTH          64
00044 
00045 #define PcmciaInvalidControllerType       0xffffffff
00046 
00047 typedef struct _TUPLE_REQUEST {
00048  USHORT  Socket;
00049 } TUPLE_REQUEST, *PTUPLE_REQUEST;
00050 
00051 typedef enum _PCMCIA_CONTROLLER_CLASS {
00052     PcmciaInvalidControllerClass = -1,
00053     PcmciaIntelCompatible,
00054     PcmciaCardBusCompatible,
00055     PcmciaElcController,
00056     PcmciaDatabook,
00057     PcmciaPciPcmciaBridge,
00058     PcmciaCirrusLogic,
00059     PcmciaTI,
00060     PcmciaTopic,
00061     PcmciaRicoh,
00062     PcmciaDatabookCB,
00063     PcmciaOpti,
00064     PcmciaTrid,
00065     PcmciaO2Micro,
00066     PcmciaNEC,
00067     PcmciaNEC_98
00068 } PCMCIA_CONTROLLER_CLASS, *PPCMCIA_CONTROLLER_CLASS;
00069 
00070 typedef struct _PCMCIA_SOCKET_INFORMATION {
00071     USHORT  Socket;
00072     USHORT  TupleCrc;
00073     UCHAR  Manufacturer[MANUFACTURER_NAME_LENGTH];
00074     UCHAR  Identifier[DEVICE_IDENTIFIER_LENGTH];
00075     UCHAR  DriverName[DRIVER_NAME_LENGTH];
00076     UCHAR  DeviceFunctionId;
00077     UCHAR  Reserved;
00078     UCHAR  CardInSocket;
00079     UCHAR  CardEnabled;
00080     ULONG  ControllerType;
00081 } PCMCIA_SOCKET_INFORMATION, *PPCMCIA_SOCKET_INFORMATION;
00082 
00083 #define PcmciaClassFromControllerType(type)     ((PCMCIA_CONTROLLER_CLASS)((type) & 0xff))
00084 #define PcmciaModelFromControllerType(type)     (((type) >> 8) & 0x3ffff)
00085 #define PcmciaRevisionFromControllerType(type)  ((type) >> 26)
00086 
00087 
00088 DEFINE_GUID(GUID_PCMCIA_INTERFACE_STANDARD, \
00089   0xbed5dadfL, 0x38fb, 0x11d1, 0x94, 0x62, 0x00, 0xc0, 0x4f, 0xb9, 0x60, 0xee);
00090 
00091 typedef ULONG MEMORY_SPACE;
00092 
00093 typedef ULONG
00094 (NTAPI *PPCMCIA_READ_WRITE_CONFIG)(
00095   IN PVOID  Context,
00096   IN ULONG  WhichSpace,
00097   IN PUCHAR  Buffer,
00098   IN ULONG  Offset,
00099   IN ULONG  Length);
00100 
00101 #define PCCARD_PCI_CONFIGURATION_SPACE    0
00102 #define PCCARD_ATTRIBUTE_MEMORY           1
00103 #define PCCARD_COMMON_MEMORY              2
00104 #define PCCARD_ATTRIBUTE_MEMORY_INDIRECT  3
00105 #define PCCARD_COMMON_MEMORY_INDIRECT     4
00106 
00107 typedef struct _PCMCIA_BUS_INTERFACE_STANDARD {
00108     USHORT  Size;
00109     USHORT  Version;
00110     PVOID  Context;
00111     PINTERFACE_REFERENCE  InterfaceReference;
00112     PINTERFACE_DEREFERENCE  InterfaceDereference;
00113     PPCMCIA_READ_WRITE_CONFIG ReadConfig;
00114     PPCMCIA_READ_WRITE_CONFIG  WriteConfig;
00115 } PCMCIA_BUS_INTERFACE_STANDARD, *PPCMCIA_BUS_INTERFACE_STANDARD;
00116 
00117 #define PCMCIA_MEMORY_8BIT_ACCESS         0
00118 #define PCMCIA_MEMORY_16BIT_ACCESS        1
00119 
00120 typedef BOOLEAN
00121 (NTAPI *PPCMCIA_MODIFY_MEMORY_WINDOW)(
00122   IN PVOID  Context,
00123   IN ULONGLONG  HostBase,
00124   IN ULONGLONG  CardBase,
00125   IN BOOLEAN  Enable,
00126   IN ULONG  WindowSize  OPTIONAL,
00127   IN UCHAR  AccessSpeed  OPTIONAL,
00128   IN UCHAR  BusWidth  OPTIONAL,
00129   IN BOOLEAN  IsAttributeMemory  OPTIONAL);
00130 
00131 #define PCMCIA_VPP_0V                     0
00132 #define PCMCIA_VPP_12V                    1
00133 #define PCMCIA_VPP_IS_VCC                 2
00134 
00135 typedef BOOLEAN
00136 (NTAPI *PPCMCIA_SET_VPP)(
00137   IN PVOID  Context,
00138   IN UCHAR  VppLevel);
00139 
00140 typedef BOOLEAN
00141 (NTAPI *PPCMCIA_IS_WRITE_PROTECTED)(
00142   IN PVOID  Context);
00143 
00144 typedef struct _PCMCIA_INTERFACE_STANDARD {
00145     USHORT  Size;
00146     USHORT  Version;
00147     PINTERFACE_REFERENCE  InterfaceReference;
00148     PINTERFACE_DEREFERENCE  InterfaceDereference;
00149     PVOID  Context;
00150     PPCMCIA_MODIFY_MEMORY_WINDOW  ModifyMemoryWindow;
00151     PPCMCIA_SET_VPP  SetVpp;
00152     PPCMCIA_IS_WRITE_PROTECTED  IsWriteProtected;
00153 } PCMCIA_INTERFACE_STANDARD, *PPCMCIA_INTERFACE_STANDARD;
00154 
00155 #ifdef __cplusplus
00156 }
00157 #endif
00158 
00159 #endif /* _NTDDPCMH_ */

Generated on Sat May 26 2012 04:28:49 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.