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.
 
 
 
 
 
 

110 lines
3.1 KiB

//******************************************************************************/
//* *
//* services.h - *
//* *
//* Copyright (c) C-Cube Microsystems 1996 *
//* All Rights Reserved. *
//* *
//* Use of C-Cube Microsystems code is governed by terms and conditions *
//* stated in the accompanying licensing statement. *
//* *
//******************************************************************************/
//
// VxDJmp
//
#ifdef VXD
#include <vtoolsc.h>
#endif
#ifndef _SERVICES_H_
#define _SERVICES_H_
#define LPBYTE BYTE FAR *
#define ZVDVXD_Major 1
#define ZVDVXD_Minor 0
#define ZVDVXD_DeviceID 0x3180
#define ZVDVXD_Init_Order 0x7f000000
#define EXCA_BASE 0x800
#define EXCA_WS_EN 0x11
#define EXCA_WS_PLUS 0x13
#define WS_ON 0x80
#define WS_OFF 0xC0
#define WS_PLUS_0 0x00
#define WS_PLUS_1 0x40
#define WS_PLUS_2 0x80
#define WS_PLUS_3 0xC0
// Return Defines
#define ZVDVXD_OK 0x00000000
#define ZVDVXD_NOTREADY 0x00000001
#define ZVDVXD_FAIL 0x00000002
// Structures
#pragma pack( 1 )
typedef struct tagRESINFO
{
WORD wNumMemWindows; // Num memory windows
DWORD dwMemBase[16]; // memory window base
DWORD dwMemLength[16]; // memory window length
WORD wNumIOPorts; // num IO ports
WORD wIOPortBase[16]; // IO port base
WORD wIOPortLength[16]; // IO port length
WORD wNumIRQChannels; // num IRQ info
BYTE bIRQChannel[16]; // IRQ list
WORD wNumDMAChannels; // num DMA channels
BYTE bDMAChannel[16]; // DMA list
WORD wSocket; // Socket
}
RESINFO, *PRESINFO, FAR *LPRESINFO;
#pragma
typedef struct _tagPCICINFO
{
CHAR lpzRoot[64]; // Device root location
CHAR lpzVendorID[256]; // Vendor ID string
}
PCICINFO, *PPCICINFO, FAR *LPPCICINFO;
// Prototypes
DWORD _cdecl ZVDVXD_GetResInfo( DWORD dwDevice, LPRESINFO lpResInfo );
DWORD _cdecl ZVDVXD_EnablePCIC( DWORD dwDevice );
DWORD _cdecl ZVDVXD_DisablePCIC( DWORD dwDevice );
DWORD _cdecl ZVDVXD_GetPCICInfo( DWORD dwDevice, LPPCICINFO lpPCICInfo );
DWORD _cdecl ZVDVXD_GetExCAReg( DWORD dwDevice, WORD wReg, LPBYTE lpbValue );
DWORD _cdecl ZVDVXD_SetExCAReg( DWORD dwDevice, WORD wReg, BYTE bValue );
DWORD _cdecl ZVDVXD_GetPCIReg( DWORD dwDevice, WORD wReg, LPBYTE lpbValue );
DWORD _cdecl ZVDVXD_SetPCIReg( DWORD dwDevice, WORD wReg, BYTE bValue );
// Service Table
#ifdef VXD
Begin_VxD_Service_Table(ZVDVXD)
VxD_Service(ZVDVXD_GetResInfo)
VxD_Service(ZVDVXD_EnablePCIC)
VxD_Service(ZVDVXD_DisablePCIC)
VxD_Service(ZVDVXD_GetPCICInfo)
VxD_Service(ZVDVXD_GetExCAReg)
VxD_Service(ZVDVXD_SetExCAReg)
VxD_Service(ZVDVXD_GetPCIReg)
VxD_Service(ZVDVXD_SetPCIReg)
End_VxD_Service_Table
#endif
#endif _SERVICES_H_