Annotation of ntddk/inc/nt_vdd.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  *  nt_vdd.h
                      3:  *
                      4:  *  VDD services exports and defines
                      5:  *
                      6:  */
                      7: 
                      8: #ifndef _NT_VDD
                      9: 
                     10: #define _NT_VDD
                     11: 
                     12: 
                     13: /**
                     14:  *  Basic typedef which would make ULONG and DWORD same
                     15:  */
                     16: 
                     17: // typedef DWORD ULONG;
                     18: 
                     19: /**
                     20:  * IO port service prototypes and data structure definitions
                     21:  **/
                     22: 
                     23: /** Basic typedefs of VDD IO hooks **/
                     24: 
                     25: typedef VOID (*PFNVDD_INB)   (WORD iport,BYTE * data);
                     26: typedef VOID (*PFNVDD_INW)   (WORD iport,WORD * data);
                     27: typedef VOID (*PFNVDD_INSB)  (WORD iport,BYTE * data,WORD count);
                     28: typedef VOID (*PFNVDD_INSW)  (WORD iport,WORD * data,WORD count);
                     29: typedef VOID (*PFNVDD_OUTB)  (WORD iport,BYTE data);
                     30: typedef VOID (*PFNVDD_OUTW)  (WORD iport,WORD data);
                     31: typedef VOID (*PFNVDD_OUTSB) (WORD iport,BYTE * data,WORD count);
                     32: typedef VOID (*PFNVDD_OUTSW) (WORD iport,WORD * data,WORD count);
                     33: 
                     34: /**  Array of handlers for VDD IO hooks. **/
                     35: 
                     36: typedef struct _VDD_IO_HANDLERS {
                     37:     PFNVDD_INB  inb_handler;
                     38:     PFNVDD_INW  inw_handler;
                     39:     PFNVDD_INSB         insb_handler;
                     40:     PFNVDD_INSW         insw_handler;
                     41:     PFNVDD_OUTB         outb_handler;
                     42:     PFNVDD_OUTW         outw_handler;
                     43:     PFNVDD_OUTSB outsb_handler;
                     44:     PFNVDD_OUTSW outsw_handler;
                     45: } VDD_IO_HANDLERS, *PVDD_IO_HANDLERS;
                     46: 
                     47: /** Port Range structure **/
                     48: 
                     49: typedef struct _VDD_IO_PORTRANGE {
                     50:         WORD   First;
                     51:         WORD   Last;
                     52: } VDD_IO_PORTRANGE, *PVDD_IO_PORTRANGE;
                     53: 
                     54: 
                     55: BOOL VDDInstallIOHook (
                     56:      HANDLE            hVDD,
                     57:      WORD              cPortRange,
                     58:      PVDD_IO_PORTRANGE pPortRange,
                     59:      PVDD_IO_HANDLERS  IOhandler
                     60: );
                     61: 
                     62: 
                     63: VOID VDDDeInstallIOHook (
                     64:      HANDLE            hVdd,
                     65:      WORD              cPortRange,
                     66:      PVDD_IO_PORTRANGE pPortRange
                     67: );
                     68: 
                     69: 
                     70: /**
                     71:  * DMA service prototypes and data structure definitions
                     72:  **/
                     73: 
                     74: 
                     75: /** Buffer definition for returning DMA information **/
                     76: 
                     77: typedef struct _VDD_DMA_INFO {
                     78:     WORD    addr;
                     79:     WORD    count;
                     80:     WORD    page;
                     81:     BYTE    status;
                     82:     BYTE    mode;
                     83:     BYTE    mask;
                     84: } VDD_DMA_INFO, *PVDD_DMA_INFO;
                     85: 
                     86: /** bits for querying the DMA information **/
                     87: 
                     88: #define VDD_DMA_ADDR    0x01
                     89: #define VDD_DMA_COUNT   0x02
                     90: #define VDD_DMA_PAGE    0x04
                     91: #define VDD_DMA_STATUS  0x05
                     92: #define VDD_DMA_ALL VDD_DMA_ADDR | VDD_DMA_COUNT | VDD_DMA_PAGE | VDD_DMA_STATUS
                     93: 
                     94: 
                     95: DWORD VDDRequestDMA (
                     96:     HANDLE hVDD,
                     97:     WORD  iChannel,
                     98:     PVOID Buffer,
                     99:     DWORD  length
                    100: );
                    101: 
                    102: 
                    103: BOOL VDDSetDMA (
                    104:     HANDLE hVDD,
                    105:     WORD iChannel,
                    106:     WORD fDMA,
                    107:     PVDD_DMA_INFO Buffer
                    108: );
                    109: 
                    110: 
                    111: BOOL VDDQueryDMA (
                    112:      HANDLE        hVDD,
                    113:      WORD          iChannel,
                    114:      PVDD_DMA_INFO pDmaInfo
                    115: );
                    116: 
                    117: 
                    118: /**
                    119:  * Memory mapped I/O service prototypes and data structure definitions
                    120:  **/
                    121: 
                    122: typedef VOID (*PVDD_MEMORY_HANDLER) (PVOID FaultAddress, ULONG RWMode);
                    123: 
                    124: BOOL VDDInstallMemoryHook (
                    125:    HANDLE hVDD,
                    126:    PVOID pStart,
                    127:    DWORD count,
                    128:    PVDD_MEMORY_HANDLER MemoryHandler
                    129: );
                    130: 
                    131: BOOL VDDDeInstallMemoryHook (
                    132:    HANDLE hVDD,
                    133:    PVOID pStart,
                    134:    DWORD count
                    135: );
                    136: 
                    137: BOOL VDDAllocMem(
                    138:   HANDLE hVDD,
                    139:   PVOID        Address,
                    140:   DWORD        Size
                    141: );
                    142: 
                    143: 
                    144: BOOL VDDFreeMem(
                    145:   HANDLE hVDD,
                    146:   PVOID        Address,
                    147:   DWORD        Size
                    148: );
                    149: 
                    150: /**
                    151:  * Misc. service prototypes and data structure definitions
                    152:  **/
                    153: 
                    154: 
                    155: BOOL VDDIncludeMem(
                    156:   HANDLE hVDD,
                    157:   PVOID        Address,
                    158:   DWORD        Size
                    159: );
                    160: 
                    161: 
                    162: VOID VDDTerminateVDM();
                    163: 
                    164: /** Basic typedefs of VDD User hooks **/
                    165: 
                    166: typedef VOID (*PFNVDD_UCREATE)     (USHORT DosPDB);
                    167: typedef VOID (*PFNVDD_UTERMINATE)   (USHORT DosPDB);
                    168: typedef VOID (*PFNVDD_UBLOCK)      (VOID);
                    169: typedef VOID (*PFNVDD_URESUME)     (VOID);
                    170: 
                    171: /**  Array of handlers for VDD User hooks. **/
                    172: 
                    173: typedef struct _VDD_USER_HANDLERS {
                    174:     HANDLE             hvdd;
                    175:     PFNVDD_UCREATE     ucr_handler;
                    176:     PFNVDD_UTERMINATE  uterm_handler;
                    177:     PFNVDD_UBLOCK      ublock_handler;
                    178:     PFNVDD_URESUME     uresume_handler;
                    179:     struct _VDD_USER_HANDLERS *next;
                    180: } VDD_USER_HANDLERS, *PVDD_USER_HANDLERS;
                    181: 
                    182: /** Function prototypes **/
                    183: 
                    184: BOOL VDDInstallUserHook (
                    185:      HANDLE            hVDD,
                    186:      PFNVDD_UCREATE    Ucr_Handler,
                    187:      PFNVDD_UTERMINATE Uterm_Handler,
                    188:      PFNVDD_UBLOCK     Ublock_handler,
                    189:      PFNVDD_URESUME    Uresume_handler
                    190: );
                    191: 
                    192: 
                    193: BOOL VDDDeInstallUserHook (
                    194:      HANDLE           hVdd
                    195: );
                    196: 
                    197: VOID VDDSimulate16(VOID);
                    198: 
                    199: 
                    200: #endif // ifndef _NT_VDD

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.