Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
Copyright (c) 1991 - 1993 Microsoft Corporation
Module Name:
memcard.h
Abstract:
Author:
Neil Sandlin (neilsa) 26-Apr-99
Environment:
Kernel mode only.
Notes:
--*/
#ifndef _MEMCARD_H_
#define _MEMCARD_H_
#ifdef POOL_TAGGING
#ifdef ExAllocatePool
#undef ExAllocatePool
#endif
#define ExAllocatePool(a,b) ExAllocatePoolWithTag(a,b,'cmeM')
#endif
//
// The byte in the boot sector that specifies the type of media, and
// the values that it can assume. We can often tell what type of media
// is in the drive by seeing which controller parameters allow us to read
// the diskette, but some different densities are readable with the same
// parameters so we use this byte to decide the media type.
//
#pragma pack(1)
typedef struct _BOOT_SECTOR_INFO { UCHAR JumpByte; UCHAR Ignore1[2]; UCHAR OemData[8]; USHORT BytesPerSector; UCHAR SectorsPerCluster; USHORT ReservedSectors; UCHAR NumberOfFATs; USHORT RootEntries; USHORT TotalSectors; UCHAR MediaDescriptor; USHORT SectorsPerFAT; USHORT SectorsPerTrack; USHORT Heads; ULONG BigHiddenSectors; ULONG BigTotalSectors; } BOOT_SECTOR_INFO, *PBOOT_SECTOR_INFO;
#pragma pack()
//
// Runtime device structures
//
//
// There is one MEMCARD_EXTENSION attached to the device object of each
// MEMCARDpy drive. Only data directly related to that drive (and the media
// in it) is stored here; common data is in CONTROLLER_DATA. So the
// MEMCARD_EXTENSION has a pointer to the CONTROLLER_DATA.
//
typedef struct _MEMCARD_EXTENSION { PDEVICE_OBJECT UnderlyingPDO; PDEVICE_OBJECT TargetObject; PDEVICE_OBJECT DeviceObject; UNICODE_STRING DeviceName; UNICODE_STRING LinkName; UNICODE_STRING InterfaceString;
ULONG MediaIndex; ULONG ByteCapacity; BOOLEAN IsStarted; BOOLEAN IsRemoved; BOOLEAN IsMemoryMapped; BOOLEAN NoDrive; ULONGLONG HostBase; PCHAR MemoryWindowBase; ULONG MemoryWindowSize; ULONG TechnologyIndex; PCMCIA_INTERFACE_STANDARD PcmciaInterface; PCMCIA_BUS_INTERFACE_STANDARD PcmciaBusInterface; } MEMCARD_EXTENSION, *PMEMCARD_EXTENSION;
//
// macros for ReadWriteMemory
//
#define MEMCARD_READ(Extension, Offset, Buffer, Size) \
MemCardReadWrite(Extension, Offset, Buffer, Size, FALSE)
#define MEMCARD_WRITE(Extension, Offset, Buffer, Size) \
MemCardReadWrite(Extension, Offset, Buffer, Size, TRUE)
#endif // _MEMCARD_H_
|