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