[NTVDM]: Implement and export VDDTerminateVDM.
[reactos.git] / include / ddk / nt_vdd.h
1 /*
2 * nt_vdd.h
3 *
4 * Windows NT Device Driver Kit
5 *
6 * This file is part of the ReactOS DDK package.
7 *
8 * Contributors:
9 * Hermes Belusca-Maito (hermes.belusca@sfr.fr)
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23 #pragma once
24
25 #define _NT_VDD
26
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30
31 /*
32 * VDM Control
33 */
34
35 VOID
36 WINAPI
37 VDDTerminateVDM(VOID);
38
39 /*
40 * I/O Port services
41 */
42
43 typedef VOID (*PFNVDD_INB) (WORD iport, PBYTE data);
44 typedef VOID (*PFNVDD_INW) (WORD iport, PWORD data);
45 typedef VOID (*PFNVDD_INSB) (WORD iport, PBYTE data, WORD count);
46 typedef VOID (*PFNVDD_INSW) (WORD iport, PWORD data, WORD count);
47 typedef VOID (*PFNVDD_OUTB) (WORD iport, BYTE data);
48 typedef VOID (*PFNVDD_OUTW) (WORD iport, WORD data);
49 typedef VOID (*PFNVDD_OUTSB) (WORD iport, PBYTE data, WORD count);
50 typedef VOID (*PFNVDD_OUTSW) (WORD iport, PWORD data, WORD count);
51
52 typedef struct _VDD_IO_HANDLERS
53 {
54 PFNVDD_INB inb_handler;
55 PFNVDD_INW inw_handler;
56 PFNVDD_INSB insb_handler;
57 PFNVDD_INSW insw_handler;
58 PFNVDD_OUTB outb_handler;
59 PFNVDD_OUTW outw_handler;
60 PFNVDD_OUTSB outsb_handler;
61 PFNVDD_OUTSW outsw_handler;
62 } VDD_IO_HANDLERS, *PVDD_IO_HANDLERS;
63
64 typedef struct _VDD_IO_PORTRANGE
65 {
66 WORD First;
67 WORD Last;
68 } VDD_IO_PORTRANGE, *PVDD_IO_PORTRANGE;
69
70 BOOL
71 WINAPI
72 VDDInstallIOHook
73 (
74 HANDLE hVdd,
75 WORD cPortRange,
76 PVDD_IO_PORTRANGE pPortRange,
77 PVDD_IO_HANDLERS IOhandler
78 );
79
80 VOID
81 WINAPI
82 VDDDeInstallIOHook
83 (
84 HANDLE hVdd,
85 WORD cPortRange,
86 PVDD_IO_PORTRANGE pPortRange
87 );
88
89 #ifdef __cplusplus
90 }
91 #endif
92
93 /* EOF */