[project] Rename winvblock__uint16 back to UINT16
[people/sha0/winvblock.git] / src / include / probe.h
1 /**
2  * Copyright (C) 2009-2011, Shao Miller <shao.miller@yrdsb.edu.on.ca>.
3  * Copyright 2006-2008, V.
4  * For WinAoE contact information, see http://winaoe.org/
5  *
6  * This file is part of WinVBlock, derived from WinAoE.
7  *
8  * WinVBlock is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * WinVBlock is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with WinVBlock.  If not, see <http://www.gnu.org/licenses/>.
20  */
21 #ifndef WV_M_PROBE_H_
22 #  define WV_M_PROBE_H_
23
24 /**
25  * @file
26  *
27  * Boot-time disk probing specifics.
28  */
29
30 typedef struct WV_PROBE_INT_VECTOR {
31     UINT16 Offset;
32     UINT16 Segment;
33   } WV_S_PROBE_INT_VECTOR, * WV_SP_PROBE_INT_VECTOR;
34
35 #ifdef _MSC_VER
36 #  pragma pack(1)
37 #endif
38 struct WV_PROBE_SAFE_MBR_HOOK {
39     UCHAR Jump[3];
40     UCHAR Signature[8];
41     UCHAR VendorId[8];
42     WV_S_PROBE_INT_VECTOR PrevHook;
43     UINT32 Flags;
44     UINT32 Mbft;     /* MEMDISK only. */
45   } __attribute__((__packed__));
46 #ifdef _MSC_VER
47 #  pragma pack()
48 #endif
49 typedef struct WV_PROBE_SAFE_MBR_HOOK
50   WV_S_PROBE_SAFE_MBR_HOOK, * WV_SP_PROBE_SAFE_MBR_HOOK;
51
52 /* Probe functions. */
53 extern WV_SP_PROBE_SAFE_MBR_HOOK STDCALL WvProbeGetSafeHook(
54     IN PUCHAR,
55     IN WV_SP_PROBE_INT_VECTOR
56   );
57 extern void WvProbeDisks(void);
58
59 #endif  /* WV_M_PROBE_H_ */