Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ntddpcm.h
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 __NTDDPCM_H 00024 #define __NTDDPCM_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __cplusplus 00031 extern "C" { 00032 #endif 00033 00034 #include "ntddk.h" 00035 00036 #define IOCTL_PCMCIA_BASE FILE_DEVICE_CONTROLLER 00037 00038 #define DD_PCMCIA_DEVICE_NAME "\\\\.\\Pcmcia" 00039 #define DD_PCMCIA_DEVICE_NAME_U L"\\\\.\\Pcmcia" 00040 00041 #define IOCTL_GET_TUPLE_DATA \ 00042 CTL_CODE(IOCTL_PCMCIA_BASE, 3000, METHOD_BUFFERED, FILE_ANY_ACCESS) 00043 00044 #define IOCTL_SOCKET_INFORMATION \ 00045 CTL_CODE(IOCTL_PCMCIA_BASE, 3004, METHOD_BUFFERED, FILE_ANY_ACCESS) 00046 00047 #define DEVICE_IDENTIFIER_LENGTH 64 00048 #define DRIVER_NAME_LENGTH 32 00049 #define MANUFACTURER_NAME_LENGTH 64 00050 00051 #define PcmciaInvalidControllerType 0xffffffff 00052 00053 typedef struct _TUPLE_REQUEST { 00054 USHORT Socket; 00055 } TUPLE_REQUEST, *PTUPLE_REQUEST; 00056 00057 typedef enum _PCMCIA_CONTROLLER_CLASS { 00058 PcmciaInvalidControllerClass = -1, 00059 PcmciaIntelCompatible, 00060 PcmciaCardBusCompatible, 00061 PcmciaElcController, 00062 PcmciaDatabook, 00063 PcmciaPciPcmciaBridge, 00064 PcmciaCirrusLogic, 00065 PcmciaTI, 00066 PcmciaTopic, 00067 PcmciaRicoh, 00068 PcmciaDatabookCB, 00069 PcmciaOpti, 00070 PcmciaTrid, 00071 PcmciaO2Micro, 00072 PcmciaNEC, 00073 PcmciaNEC_98 00074 } PCMCIA_CONTROLLER_CLASS, *PPCMCIA_CONTROLLER_CLASS; 00075 00076 typedef struct _PCMCIA_SOCKET_INFORMATION { 00077 USHORT Socket; 00078 USHORT TupleCrc; 00079 UCHAR Manufacturer[MANUFACTURER_NAME_LENGTH]; 00080 UCHAR Identifier[DEVICE_IDENTIFIER_LENGTH]; 00081 UCHAR DriverName[DRIVER_NAME_LENGTH]; 00082 UCHAR DeviceFunctionId; 00083 UCHAR Reserved; 00084 UCHAR CardInSocket; 00085 UCHAR CardEnabled; 00086 ULONG ControllerType; 00087 } PCMCIA_SOCKET_INFORMATION, *PPCMCIA_SOCKET_INFORMATION; 00088 00089 #define PcmciaClassFromControllerType(type) ((PCMCIA_CONTROLLER_CLASS)((type) & 0xff)) 00090 #define PcmciaModelFromControllerType(type) (((type) >> 8) & 0x3ffff) 00091 #define PcmciaRevisionFromControllerType(type) ((type) >> 26) 00092 00093 00094 DEFINE_GUID(GUID_PCMCIA_INTERFACE_STANDARD, \ 00095 0xbed5dadfL, 0x38fb, 0x11d1, 0x94, 0x62, 0x00, 0xc0, 0x4f, 0xb9, 0x60, 0xee); 00096 00097 typedef ULONG MEMORY_SPACE; 00098 00099 typedef ULONG STDCALL 00100 (*PPCMCIA_READ_WRITE_CONFIG)( 00101 /*IN*/ PVOID Context, 00102 /*IN*/ ULONG WhichSpace, 00103 /*IN*/ PUCHAR Buffer, 00104 /*IN*/ ULONG Offset, 00105 /*IN*/ ULONG Length); 00106 00107 #define PCCARD_PCI_CONFIGURATION_SPACE 0 00108 #define PCCARD_ATTRIBUTE_MEMORY 1 00109 #define PCCARD_COMMON_MEMORY 2 00110 #define PCCARD_ATTRIBUTE_MEMORY_INDIRECT 3 00111 #define PCCARD_COMMON_MEMORY_INDIRECT 4 00112 00113 typedef struct _PCMCIA_BUS_INTERFACE_STANDARD { 00114 USHORT Size; 00115 USHORT Version; 00116 PVOID Context; 00117 PINTERFACE_REFERENCE InterfaceReference; 00118 PINTERFACE_DEREFERENCE InterfaceDereference; 00119 PPCMCIA_READ_WRITE_CONFIG ReadConfig; 00120 PPCMCIA_READ_WRITE_CONFIG WriteConfig; 00121 } PCMCIA_BUS_INTERFACE_STANDARD, *PPCMCIA_BUS_INTERFACE_STANDARD; 00122 00123 #define PCMCIA_MEMORY_8BIT_ACCESS 0 00124 #define PCMCIA_MEMORY_16BIT_ACCESS 1 00125 00126 typedef BOOLEAN STDCALL 00127 (*PPCMCIA_MODIFY_MEMORY_WINDOW)( 00128 /*IN*/ PVOID Context, 00129 /*IN*/ ULONGLONG HostBase, 00130 /*IN*/ ULONGLONG CardBase, 00131 /*IN*/ BOOLEAN Enable, 00132 /*IN*/ ULONG WindowSize /*OPTIONAL*/, 00133 /*IN*/ UCHAR AccessSpeed /*OPTIONAL*/, 00134 /*IN*/ UCHAR BusWidth /*OPTIONAL*/, 00135 /*IN*/ BOOLEAN IsAttributeMemory /*OPTIONAL*/); 00136 00137 #define PCMCIA_VPP_0V 0 00138 #define PCMCIA_VPP_12V 1 00139 #define PCMCIA_VPP_IS_VCC 2 00140 00141 typedef BOOLEAN STDCALL 00142 (*PPCMCIA_SET_VPP)( 00143 /*IN*/ PVOID Context, 00144 /*IN*/ UCHAR VppLevel); 00145 00146 typedef BOOLEAN STDCALL 00147 (*PPCMCIA_IS_WRITE_PROTECTED)( 00148 /*IN*/ PVOID Context); 00149 00150 typedef struct _PCMCIA_INTERFACE_STANDARD { 00151 USHORT Size; 00152 USHORT Version; 00153 PINTERFACE_REFERENCE InterfaceReference; 00154 PINTERFACE_DEREFERENCE InterfaceDereference; 00155 PVOID Context; 00156 PPCMCIA_MODIFY_MEMORY_WINDOW ModifyMemoryWindow; 00157 PPCMCIA_SET_VPP SetVpp; 00158 PPCMCIA_IS_WRITE_PROTECTED IsWriteProtected; 00159 } PCMCIA_INTERFACE_STANDARD, *PPCMCIA_INTERFACE_STANDARD; 00160 00161 #ifdef __cplusplus 00162 } 00163 #endif 00164 00165 #endif /* __NTDDPCM_H */
Generated on Tue Jul 12 2022 19:59:54 by
