📄 pcmiface.h
字号:
//****************************************************************************
// File PCMIFACE.H
//
// PCMCIA interfaces support classes
//
// Copyright (c) APSoft, 1998-2002.
// All rights reserved.
//
//****************************************************************************
#ifndef _PCMIFACE_H_
#define _PCMIFACE_H_
#include <ntddpcm.h> // NT PCMCIA support
///////////////////////////////////////////////////////////////////////////////
// --- Class CPcmciaIface --- //
///////////////////////////////////////////////////////////////////////////////
class CPcmciaIface : public PCMCIA_INTERFACE_STANDARD
// Standard PCMCIA interface
{
public:
//---------------------- Construction / Destruction --------------------------
CPcmciaIface (void);
~CPcmciaIface (void);
//****************************************************************************
// *** Implementation ***
//****************************************************************************
void Reference (void);
void DeReference (void);
BOOLEAN MapMemoryWindow (ULONGLONG uHostBase,
ULONGLONG uCardBase,
ULONG uSize,
UCHAR bSpeed,
UCHAR bWidth);
BOOLEAN SetPowerVpp (UCHAR bVpp);
BOOLEAN IsWriteProtect (void);
};
//------------------------- Inline implementation ----------------------------
inline CPcmciaIface::CPcmciaIface(void)
{
RtlZeroMemory(this, sizeof(CPcmciaIface));
}
inline CPcmciaIface::~CPcmciaIface(void)
{
}
inline void CPcmciaIface::Reference(void)
{
if (InterfaceReference != NULL)
InterfaceReference(Context);
}
inline void CPcmciaIface::DeReference(void)
{
if (InterfaceDereference != NULL)
InterfaceDereference(Context);
}
inline BOOLEAN CPcmciaIface::MapMemoryWindow(ULONGLONG uHostBase,
ULONGLONG uCardBase,
ULONG uSize,
UCHAR bSpeed,
UCHAR bWidth)
{
BOOLEAN fRet = FALSE;
if (ModifyMemoryWindow != NULL)
fRet = ModifyMemoryWindow(Context,
uHostBase,
uCardBase,
TRUE,
uSize,
bSpeed,
bWidth,
FALSE);
return fRet;
}
inline BOOLEAN CPcmciaIface::SetPowerVpp(UCHAR bVpp)
{
BOOLEAN fRet = FALSE;
if (SetVpp != NULL)
fRet = SetVpp(Context, bVpp);
return fRet;
}
inline BOOLEAN CPcmciaIface::IsWriteProtect(void)
{
BOOLEAN fRet = TRUE;
if (IsWriteProtected != NULL)
fRet = IsWriteProtected(Context);
return fRet;
}
///////////////////////////////////////////////////////////////////////////////
// --- Class CPcmciaBusIface --- //
///////////////////////////////////////////////////////////////////////////////
class CPcmciaBusIface : public PCMCIA_BUS_INTERFACE_STANDARD
// Standard PCMCIA bus interface
{
public:
//---------------------- Construction / Destruction --------------------------
CPcmciaBusIface (void);
~CPcmciaBusIface (void);
//****************************************************************************
// *** Implementation ***
//****************************************************************************
void Reference (void);
void DeReference (void);
BOOLEAN ReadCfgSpace (PUCHAR pBuffer,
ULONG uOffset,
ULONG uLength);
BOOLEAN WriteCfgSpace (PUCHAR pBuffer,
ULONG uOffset,
ULONG uLength);
};
//------------------------- Inline implementation ----------------------------
inline CPcmciaBusIface::CPcmciaBusIface(void)
{
RtlZeroMemory(this, sizeof(CPcmciaBusIface));
}
inline CPcmciaBusIface::~CPcmciaBusIface(void)
{
}
inline void CPcmciaBusIface::Reference(void)
{
if (InterfaceReference != NULL)
InterfaceReference(Context);
}
inline void CPcmciaBusIface::DeReference(void)
{
if (InterfaceDereference != NULL)
InterfaceDereference(Context);
}
inline BOOLEAN CPcmciaBusIface::ReadCfgSpace(PUCHAR pBuffer, ULONG uOffset, ULONG uLength)
{
ULONG uLen = 0;
if (ReadConfig != NULL)
uLen = ReadConfig(Context, PCCARD_ATTRIBUTE_MEMORY, pBuffer, uOffset / 2, uLength);
return (uLen != 0) ? TRUE : FALSE;
}
inline BOOLEAN CPcmciaBusIface::WriteCfgSpace(PUCHAR pBuffer, ULONG uOffset, ULONG uLength)
{
ULONG uLen = 0;
if (WriteConfig != NULL)
uLen = WriteConfig(Context, PCCARD_ATTRIBUTE_MEMORY, pBuffer, uOffset / 2, uLength);
return (uLen != 0) ? TRUE : FALSE;
}
#endif // #ifndef _PCMIFACE_H_
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -