1 /*++
2 
3 Copyright (c) Microsoft Corporation
4 
5 ModuleName:
6 
7     MxFileObject.h
8 
9 Abstract:
10 
11     Mode agnostic definition of File Object
12 
13     See MxFileObjectKm.h and MxFileObjectUm.h/cpp for mode
14     specific implementations
15 
16 --*/
17 
18 #pragma once
19 
20 class MxFileObject
21 {
22 private:
23     MdFileObject m_FileObject;
24 
25 public:
26     __inline
27     MxFileObject(
28         _In_ MdFileObject FileObject
29         ) :
30         m_FileObject(FileObject)
31     {
32     }
33 
34     __inline
35     VOID
36     SetFileObject(
37         _In_ MdFileObject FileObject
38         )
39     {
40         m_FileObject = FileObject;
41     }
42 
43     __inline
44     MdFileObject
45     GetFileObject(
46         VOID
47         )
48     {
49         return m_FileObject;
50     }
51 
52     __inline
53     MxFileObject(
54         VOID
55         ) :
56         m_FileObject(NULL)
57     {
58     }
59 
60     PUNICODE_STRING
61     GetFileName(
62         _Inout_opt_ PUNICODE_STRING Filename
63         );
64 
65     PLARGE_INTEGER
66     GetCurrentByteOffset(
67         VOID
68         );
69 
70     ULONG
71     GetFlags(
72         VOID
73         );
74 
75     VOID
76     SetFsContext(
77         _In_ PVOID Value
78         );
79 
80     VOID
81     SetFsContext2(
82         _In_ PVOID Value
83         );
84 
85     PVOID
86     GetFsContext(
87         VOID
88         );
89 
90     PVOID
91     GetFsContext2(
92         VOID
93         );
94 
95 };
96 
97 
98