18a978a17SVictor Perevertkin // 28a978a17SVictor Perevertkin // Copyright (C) Microsoft. All rights reserved. 38a978a17SVictor Perevertkin // 48a978a17SVictor Perevertkin #ifndef __FXPROBEANDLOCK_H__ 58a978a17SVictor Perevertkin #define __FXPROBEANDLOCK_H__ 68a978a17SVictor Perevertkin 78a978a17SVictor Perevertkin extern "C" { 88a978a17SVictor Perevertkin 98a978a17SVictor Perevertkin // 108a978a17SVictor Perevertkin // These are defined in a C file in src\support\ProbeAndLock.c 118a978a17SVictor Perevertkin // to avoid C++ exception handling issues. 128a978a17SVictor Perevertkin // 138a978a17SVictor Perevertkin // They do not raise the exception beyond the C function, but 148a978a17SVictor Perevertkin // translate it into an NTSTATUS before returning. 158a978a17SVictor Perevertkin // 168a978a17SVictor Perevertkin 178a978a17SVictor Perevertkin NTSTATUS 188a978a17SVictor Perevertkin FxProbeAndLockForRead( 198a978a17SVictor Perevertkin __in PMDL Mdl, 208a978a17SVictor Perevertkin __in KPROCESSOR_MODE AccessMode 218a978a17SVictor Perevertkin ); 228a978a17SVictor Perevertkin 238a978a17SVictor Perevertkin NTSTATUS 248a978a17SVictor Perevertkin FxProbeAndLockForWrite( 258a978a17SVictor Perevertkin __in PMDL Mdl, 268a978a17SVictor Perevertkin __in KPROCESSOR_MODE AccessMode 278a978a17SVictor Perevertkin ); 288a978a17SVictor Perevertkin 298a978a17SVictor Perevertkin NTSTATUS 308a978a17SVictor Perevertkin FxProbeAndLockWithAccess( 318a978a17SVictor Perevertkin __in PMDL Mdl, 328a978a17SVictor Perevertkin __in KPROCESSOR_MODE AccessMode, 338a978a17SVictor Perevertkin __in LOCK_OPERATION Operation 348a978a17SVictor Perevertkin ); 358a978a17SVictor Perevertkin 368a978a17SVictor Perevertkin } 378a978a17SVictor Perevertkin 38*1f377076SVictor Perevertkin #endif // __FXPROBEANDLOCK_H__ 39