1 //
2 //    Copyright (C) Microsoft.  All rights reserved.
3 //
4 #ifndef __FXPROBEANDLOCK_H__
5 #define __FXPROBEANDLOCK_H__
6 
7 extern "C" {
8 
9 //
10 // These are defined in a C file in src\support\ProbeAndLock.c
11 // to avoid C++ exception handling issues.
12 //
13 // They do not raise the exception beyond the C function, but
14 // translate it into an NTSTATUS before returning.
15 //
16 
17 NTSTATUS
18 FxProbeAndLockForRead(
19     __in  PMDL   Mdl,
20     __in  KPROCESSOR_MODE AccessMode
21     );
22 
23 NTSTATUS
24 FxProbeAndLockForWrite(
25     __in  PMDL   Mdl,
26     __in  KPROCESSOR_MODE AccessMode
27     );
28 
29 NTSTATUS
30 FxProbeAndLockWithAccess(
31     __in  PMDL   Mdl,
32     __in  KPROCESSOR_MODE AccessMode,
33     __in  LOCK_OPERATION Operation
34     );
35 
36 }
37 
38 #endif // __FXPROBEANDLOCK_H__
39