123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159 |
- /*
- * ntddpcm.h
- *
- * PCMCIA IOCTL 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 _NTDDPCMH_
- #define _NTDDPCMH_
- #ifdef __cplusplus
- extern "C" {
- #endif
- #define IOCTL_PCMCIA_BASE FILE_DEVICE_CONTROLLER
- #define DD_PCMCIA_DEVICE_NAME "\\\\.\\Pcmcia"
- #define DD_PCMCIA_DEVICE_NAME_U L"\\\\.\\Pcmcia"
- #define IOCTL_GET_TUPLE_DATA \
- CTL_CODE(IOCTL_PCMCIA_BASE, 3000, METHOD_BUFFERED, FILE_ANY_ACCESS)
- #define IOCTL_SOCKET_INFORMATION \
- CTL_CODE(IOCTL_PCMCIA_BASE, 3004, METHOD_BUFFERED, FILE_ANY_ACCESS)
- #define DEVICE_IDENTIFIER_LENGTH 64
- #define DRIVER_NAME_LENGTH 32
- #define MANUFACTURER_NAME_LENGTH 64
- #define PcmciaInvalidControllerType 0xffffffff
- typedef struct _TUPLE_REQUEST {
- USHORT Socket;
- } TUPLE_REQUEST, *PTUPLE_REQUEST;
- typedef enum _PCMCIA_CONTROLLER_CLASS {
- PcmciaInvalidControllerClass = -1,
- PcmciaIntelCompatible,
- PcmciaCardBusCompatible,
- PcmciaElcController,
- PcmciaDatabook,
- PcmciaPciPcmciaBridge,
- PcmciaCirrusLogic,
- PcmciaTI,
- PcmciaTopic,
- PcmciaRicoh,
- PcmciaDatabookCB,
- PcmciaOpti,
- PcmciaTrid,
- PcmciaO2Micro,
- PcmciaNEC,
- PcmciaNEC_98
- } PCMCIA_CONTROLLER_CLASS, *PPCMCIA_CONTROLLER_CLASS;
- typedef struct _PCMCIA_SOCKET_INFORMATION {
- USHORT Socket;
- USHORT TupleCrc;
- UCHAR Manufacturer[MANUFACTURER_NAME_LENGTH];
- UCHAR Identifier[DEVICE_IDENTIFIER_LENGTH];
- UCHAR DriverName[DRIVER_NAME_LENGTH];
- UCHAR DeviceFunctionId;
- UCHAR Reserved;
- UCHAR CardInSocket;
- UCHAR CardEnabled;
- ULONG ControllerType;
- } PCMCIA_SOCKET_INFORMATION, *PPCMCIA_SOCKET_INFORMATION;
- #define PcmciaClassFromControllerType(type) ((PCMCIA_CONTROLLER_CLASS)((type) & 0xff))
- #define PcmciaModelFromControllerType(type) (((type) >> 8) & 0x3ffff)
- #define PcmciaRevisionFromControllerType(type) ((type) >> 26)
- DEFINE_GUID(GUID_PCMCIA_INTERFACE_STANDARD, \
- 0xbed5dadfL, 0x38fb, 0x11d1, 0x94, 0x62, 0x00, 0xc0, 0x4f, 0xb9, 0x60, 0xee);
- typedef ULONG MEMORY_SPACE;
- typedef ULONG
- (NTAPI *PPCMCIA_READ_WRITE_CONFIG)(
- IN PVOID Context,
- IN ULONG WhichSpace,
- IN PUCHAR Buffer,
- IN ULONG Offset,
- IN ULONG Length);
- #define PCCARD_PCI_CONFIGURATION_SPACE 0
- #define PCCARD_ATTRIBUTE_MEMORY 1
- #define PCCARD_COMMON_MEMORY 2
- #define PCCARD_ATTRIBUTE_MEMORY_INDIRECT 3
- #define PCCARD_COMMON_MEMORY_INDIRECT 4
- typedef struct _PCMCIA_BUS_INTERFACE_STANDARD {
- USHORT Size;
- USHORT Version;
- PVOID Context;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PPCMCIA_READ_WRITE_CONFIG ReadConfig;
- PPCMCIA_READ_WRITE_CONFIG WriteConfig;
- } PCMCIA_BUS_INTERFACE_STANDARD, *PPCMCIA_BUS_INTERFACE_STANDARD;
- #define PCMCIA_MEMORY_8BIT_ACCESS 0
- #define PCMCIA_MEMORY_16BIT_ACCESS 1
- typedef BOOLEAN
- (NTAPI *PPCMCIA_MODIFY_MEMORY_WINDOW)(
- IN PVOID Context,
- IN ULONGLONG HostBase,
- IN ULONGLONG CardBase,
- IN BOOLEAN Enable,
- IN ULONG WindowSize OPTIONAL,
- IN UCHAR AccessSpeed OPTIONAL,
- IN UCHAR BusWidth OPTIONAL,
- IN BOOLEAN IsAttributeMemory OPTIONAL);
- #define PCMCIA_VPP_0V 0
- #define PCMCIA_VPP_12V 1
- #define PCMCIA_VPP_IS_VCC 2
- typedef BOOLEAN
- (NTAPI *PPCMCIA_SET_VPP)(
- IN PVOID Context,
- IN UCHAR VppLevel);
- typedef BOOLEAN
- (NTAPI *PPCMCIA_IS_WRITE_PROTECTED)(
- IN PVOID Context);
- typedef struct _PCMCIA_INTERFACE_STANDARD {
- USHORT Size;
- USHORT Version;
- PINTERFACE_REFERENCE InterfaceReference;
- PINTERFACE_DEREFERENCE InterfaceDereference;
- PVOID Context;
- PPCMCIA_MODIFY_MEMORY_WINDOW ModifyMemoryWindow;
- PPCMCIA_SET_VPP SetVpp;
- PPCMCIA_IS_WRITE_PROTECTED IsWriteProtected;
- } PCMCIA_INTERFACE_STANDARD, *PPCMCIA_INTERFACE_STANDARD;
- #ifdef __cplusplus
- }
- #endif
- #endif /* _NTDDPCMH_ */
|