📄 tmshare.h
字号:
/*
tmshare.h
contains the data structures that are common to all objects
960417 TR Created from tmstd.h
961906 TR Modified to contain all the punlicly callable interfaces
for data hiding and abstraction.
*/
/* this is the driver extension object specific to TM */
typedef struct _INIT_OBJECT
{
DWORD dwUserBufferSize;
DWORD dwTotalBufferSize;
DWORD dwMaximumBoards;
DWORD dwDisableHal;
DWORD dwSDRAMSize;
BYTE szFriendlyName[80];
DWORD dwDBGLevelBitmap;
DWORD dwDBGType;
DWORD dwTargetDBGLevel;
DWORD dwPrinterPort;
DWORD dwPrinterDongle;
DWORD dwHardReset;
DWORD InteractiveMode;
DWORD dwDisablePnP;
DWORD dwBufferMaxCount;
BYTE szIniPath[256];
} INIT_OBJECT, *PINIT_OBJECT;
/* tmboard.h */
STATUS boardGetCaps ( PVOID Object, PVOID ObjectCaps );
STATUS boardParameterDWORDSet ( PVOID pBoard, DWORD ID, DWORD Value );
STATUS boardParameterDWORDGet ( PVOID pBoard, DWORD ID, PDWORD pValue );
STATUS boardCreate ( PVOID pConfig, PVOID *ppBoard );
STATUS boardDestroy ( PVOID pBoard );
STATUS boardOpen ( PVOID Object );
STATUS boardClose ( PVOID Object );
STATUS boardReset ( PVOID Object );
STATUS boardImageLoad ( PVOID pBoard, DWORD PhysLoadAddr, DWORD Size,
PVOID pImageAddr, DWORD ArgC, PCHAR *ArgV );
STATUS boardImageRun ( PVOID pBoard, DWORD PhysStartAddr );
STATUS boardImageStop ( PVOID pBoard );
STATUS boardGetMiscInfo ( PVOID pBoard, PVOID pDSPInfo );
STATUS boardSetMiscInfo( PVOID pBoard, PVOID pInfo );
STATUS boardGetStatus( PVOID pBoard, PDWORD pdwStatus );
PVOID GetDevNodeObject ( PVOID );
PVOID GetHALObject ( PVOID );
PVOID GetIPCObject ( PVOID );
PVOID GetTaskMgrObject ( PVOID );
PVOID GetChnlMgrObject ( PVOID );
PVOID GetStrmMgrObject ( PVOID );
PVOID GetMsgMgrObject ( PVOID );
PVOID GetShMemObject ( PVOID );
PVOID GetBufferMgrObject ( PVOID );
/* tmpnp.h */
typedef struct _TMPNP_CONFIG
{
WORD wVendorID;
WORD wDeviceID;
BYTE bBusNum;
BYTE bDevFuncNum;
BYTE bIRQ;
BYTE bRevision;
DWORD dwSubsystemID;
DWORD dwDevNode;
DWORD dwMMIOBase;
DWORD dwMMIOLength;
DWORD dwSDRAMBase;
DWORD dwSDRAMLength;
} TMPNP_CONFIG, *PTMPNP_CONFIG;
/* tmipc.h */
typedef STATUS ( * TMIPC_ONINTERRUPT )( DWORD InterruptID, DWORD Count,
PVOID pContext );
STATUS ipcRegisterCallback (
PVOID pIPC, /* ipc object */
DWORD InterruptID, /* interrupt command */
TMIPC_ONINTERRUPT OnInterrupt, /* interrupt callback function */
PVOID pContext ); /* callback context */
STATUS ipcUnregisterCallback (
PVOID pIPC, /* ipc object */
DWORD InterruptID ); /* interrupt command */
STATUS ipcGenerateIRQ ( PVOID pIPC , DWORD dwIntID );
STATUS ipcCreate ( PVOID pvContainer, BYTE bIRQ, PVOID *ppIPC );
VOID ipcDestroy (PVOID pvObject);
STATUS ipcReset ( PVOID pIPC );
STATUS ipcDisableIRQ ( PVOID pIPC );
STATUS ipcEnableIRQ ( PVOID pIPC );
BOOL ipcGetInterruptState ( PVOID pIPC );
/* tmchnl.h */
#define TMCHNL_DIRECTION_RECV 0
#define TMCHNL_DIRECTION_SEND 1
typedef STATUS ( * TMCHNL_ONRECVPACKET ) ( PVOID, PVOID );
typedef STATUS ( * TMCHNL_ONSENDREADY ) ( PVOID );
STATUS chnlValidateHandle ( PVOID pChnl );
STATUS chnlmCreate (
PVOID pContainer, /* pointer to the driver object */
DWORD ChannelCount, /* number of channels that will be supported */
PVOID *ppChnlMgr ); /* address of memory where object ptr is stored */
STATUS chnlmCreateChnl (
PVOID pChnlMgr, /* pointer to channel manager */
BOOL Direction, /* channel direction */
DWORD ChannelID, /* channel ID - passed by the host */
DWORD QueueSize, /* queue depth */
PVOID OnCallback, /* receive callback */
PVOID pContext, /* receive and send callback context */
PVOID *ppChnl ); /* address of pointer for string chnl object */
STATUS chnlDestroy (
PVOID pChnl ); /* pointer to the channel object */
STATUS chnlmDestroy (PVOID pChnlMgr);
STATUS chnlPacketSend ( PVOID pChnl, PVOID pPacket );
STATUS chnlHandleToID ( PVOID pChnl, PDWORD pID );
/* tmtask.h */
STATUS taskmCreate ( PVOID pContainer, DWORD TaskCount, PVOID *ppTaskMgr );
STATUS taskmCreateTask ( PVOID pObject, PVOID TaskCreateArg, PDWORD Handle );
STATUS taskDestroy ( DWORD dwHandle );
STATUS taskmDestroy ( PVOID pObject );
STATUS taskStart ( DWORD dwHandle );
STATUS taskStop ( DWORD dwHandle );
STATUS taskSignal ( DWORD dwHandle, DWORD State );
STATUS taskmDestroyTaskByClnt ( PVOID pObject, DWORD dwClientHandle );
/* tmmsg.h */
typedef STATUS ( * TMMSG_ONRECVPACKET )( DWORD dwMsgHandle, PVOID pvContext,
PVOID pvPacket );
STATUS msgmCreate ( PVOID pvContainer, DWORD MessageCount, PVOID *ppMsgMgr );
STATUS msgmCreateMsg ( PVOID pMsgMgr, PVOID pMsgCreateArg, PVOID *ppMsg );
STATUS msgDestroy ( PVOID pMsg );
STATUS msgmDestroy (PVOID pMsgMgr);
STATUS msgSend ( PVOID pMsg, PVOID pPacket );
STATUS msgmDestroyMsgByClnt ( PVOID pMsgMgr, DWORD dwClientHandle );
/* tmstrm.h */
typedef STATUS ( * TMSTRM_ONBUFFERRETURN )( DWORD dwStrmHandle,
PVOID pvContext, PVOID pvPacket);
/* tmif.h */
/* tmclnt.h */
#define TMCLNT_CLIENT_TYPEDLL32 (0x01)
#define TMCLNT_CLIENT_TYPEDLL16 (0x02)
#define TMCLNT_CLIENT_TYPEVXD (0x03)
typedef struct _TMCLNT_CLIENT
{
IN DWORD dwType; // vxd, dll32, dll16.
IN DWORD dwContext;
union
{
struct
{
IN DWORD dwModuleHandle; // returned by Win32 API for calling app
IN DWORD dwAdvisoryQueueCount; // currently ignored
IN DWORD dwVMHandle;
OUT PVOID pvAdvisoryQueue;
OUT PVOID pvOverlappedObject;
} DLL32;
struct
{
IN WORD wCallbackCS; // dll16 CS for Simulate_Far_Call
IN DWORD dwCallbackIP; // dll16 IP for Simulate_Far_Call
} DLL16;
struct
{
IN PVOID pvCallbackFunc; // vxd client
} VxD;
} Client;
} TMCLNT_CLIENT, *PTMCLNT_CLIENT;
STATUS clntmCreate ( PVOID *ppvObject, PVOID pvContainer );
STATUS clntmCreateClnt ( PVOID pvObject, PVOID pvRegisterClient,
PDWORD pdwHandle );
STATUS clntDestroy ( DWORD dwHandle );
STATUS clntAdvise ( DWORD dwHandle , PVOID pvAdvisoryObject );
STATUS clntmDestroy ( PVOID pvObject );
STATUS clntWaitForAdvise ( DWORD dwHandle );
STATUS clntmVMHandleToClnt ( PVOID pObject, DWORD VMHandle,
PDWORD pClientHandle );
STATUS chnlmReset ( PVOID pChnlMgr );
STATUS clntIncrementReference ( DWORD dwHandle );
/* tmhal.h */
STATUS halCreate( DWORD dwSDRAMBase, DWORD dwSDRAMSize,
DWORD dwMMIOBase, PVOID pConatiner, PVOID *ppHAL );
VOID halRegisterInit ( PVOID pvObject, DWORD dwSDRAMPhys,
DWORD dwSDRAMCacheLimit, DWORD dwMMIOPhys);
VOID halDSPStart ( PVOID pvObject );
VOID halDSPReset ( PVOID pvObject );
VOID halDSPStop ( PVOID pvObject );
STATUS halDestroy ( PVOID pObject );
VOID halIRQConnect( PVOID pObject, DWORD dwIRQ, BOOL fLevelTrigger,
BYTE bPriority, DWORD dwInterruptHandler );
VOID halIRQDisconnect( PVOID pObject, DWORD dwIRQ );
VOID halIRQDisable( PVOID pObject, DWORD dwIRQ );
VOID halIRQEnable( PVOID pObject, DWORD dwIRQ );
VOID halUnreset ( PVOID pvObject );
VOID halIRQDSPGen( PVOID pObject );
VOID halBIUHostIRQAck( PVOID pObject );
BOOL halIsTMRunning ( PVOID pvObject );
BOOL halBIUIsIRQOurs ( PVOID pObject );
BOOL halGetTargetVersion (
PVOID pvObject,
PDWORD MajorVersion,
PDWORD MinorVersion );
BOOL halSetTargetVersion (
PVOID pvObject,
DWORD MajorVersion,
DWORD MinorVersion );
/* tmloader.h */
STATUS loaderCreate ( PVOID pContainer, PVOID pLoaderRegisterArg,
PVOID *ppObject);
STATUS loaderDestroy ( PVOID pLoader );
STATUS loaderTMLDRSendRequest ( PVOID pLoader,
PVOID pRequestArg );
STATUS loaderDownloadImage ( PVOID pLoader , PVOID pSectionTable,
DWORD SectionCount );
STATUS loaderPatchMemory( PVOID pLoader , PVOID pPatchTable,
DWORD PatchCount );
/* tmshmem.h */
STATUS shmemCreate ( DWORD Length , PVOID pContainer, PVOID *ppShmem );
STATUS shmemAllocate (PVOID pShmem, DWORD Flags, DWORD Length,
PVOID *pLinear, PDWORD pPhysical );
STATUS shmemFree(PVOID pShmem, PVOID Buffer);
VOID shmemDestroy ( PVOID pShmem );
/* tmpnp.h */
VOID pnpPCINameGet ( WORD VendorID, WORD DeviceID,
BYTE Bus, BYTE DeviceFunction, PCHAR Name );
/* tmbuffer.h */
STATUS buffermCreate ( PVOID pvContainer, DWORD dwBufferObjectCount,
PVOID *ppvObject );
STATUS buffermPrepare ( PVOID pvObject, PVOID pvBufferPrepare,
PVOID *ppvObject );
STATUS bufferUnprepare ( PVOID pObject );
STATUS buffermDestroy (PVOID pObject );
STATUS buffermDestroyBufferByClnt ( PVOID pMsgMgr, DWORD dwClientHandle );
/* cqueue */
DWORD cqueueLength ( PVOID Object );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -