Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygenntddpcm.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
1.7.6.1
|