libintrovirt
v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
FILE_MODE_INFORMATION.hh
Go to the documentation of this file.
1
/*
2
* Copyright 2021 Assured Information Security, Inc.
3
*
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
* you may not use this file except in compliance with the License.
6
* You may obtain a copy of the License at
7
*
8
* http://www.apache.org/licenses/LICENSE-2.0
9
*
10
* Unless required by applicable law or agreed to in writing, software
11
* distributed under the License is distributed on an "AS IS" BASIS,
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
* See the License for the specific language governing permissions and
14
* limitations under the License.
15
*/
16
#pragma once
17
18
#include "
FILE_INFORMATION.hh
"
19
20
#include <
introvirt/windows/kernel/nt/const/FileCreateOptions.hh
>
21
22
#include <cstdint>
23
24
namespace
introvirt
{
25
namespace
windows {
26
namespace
nt {
27
28
/* FileCreateOptions has the same values, plus more */
29
/* Below are the actual valid options, though */
30
/*
31
enum FILE_MODE_FLAGS {
32
FILE_WRITE_THROUGH = 0x00000002,
33
FILE_SEQUENTIAL_ONLY = 0x00000004,
34
FILE_NO_INTERMEDIATE_BUFFERING = 0x00000008,
35
FILE_SYNCHRONOUS_IO_ALERT = 0x00000010,
36
FILE_SYNCHRONOUS_IO_NONALERT = 0x00000020,
37
FILE_DELETE_ON_CLOSE = 0x00001000
38
};
39
*/
40
41
class
FILE_MODE_INFORMATION
:
public
FILE_INFORMATION
{
42
public
:
43
virtual
uint32_t
Mode
()
const
= 0;
44
virtual
void
Mode
(uint32_t value) = 0;
45
52
bool
WriteThrough
()
const
;
53
60
bool
SequentialOnly
()
const
;
61
68
bool
NoIntermediateBuffering
()
const
;
69
76
bool
SynchronousIoAlert
()
const
;
77
84
bool
SynchronousIoNonAlert
()
const
;
85
92
bool
DeleteOnClose
()
const
;
93
};
94
95
}
/* namespace nt */
96
}
/* namespace windows */
97
}
/* namespace introvirt */
FILE_INFORMATION.hh
FileCreateOptions.hh
introvirt::windows::nt::FILE_INFORMATION
An abstract class reprseneting a more specific file information buffer.
Definition
FILE_INFORMATION.hh:38
introvirt::windows::nt::FILE_MODE_INFORMATION
Definition
FILE_MODE_INFORMATION.hh:41
introvirt::windows::nt::FILE_MODE_INFORMATION::SequentialOnly
bool SequentialOnly() const
Check if the FILE_SEQUENTIAL_ONLY flag is set.
introvirt::windows::nt::FILE_MODE_INFORMATION::Mode
virtual uint32_t Mode() const =0
introvirt::windows::nt::FILE_MODE_INFORMATION::SynchronousIoNonAlert
bool SynchronousIoNonAlert() const
Check if the FILE_SYNCHRONOUS_IO_NONALERT flag is set.
introvirt::windows::nt::FILE_MODE_INFORMATION::WriteThrough
bool WriteThrough() const
Check if the FILE_WRITE_THROUGH flag is set.
introvirt::windows::nt::FILE_MODE_INFORMATION::SynchronousIoAlert
bool SynchronousIoAlert() const
Check if the FILE_SYNCHRONOUS_IO_ALERT flag is set.
introvirt::windows::nt::FILE_MODE_INFORMATION::NoIntermediateBuffering
bool NoIntermediateBuffering() const
Check if the FILE_NO_INTERMEDIATE_BUFFERING flag is set.
introvirt::windows::nt::FILE_MODE_INFORMATION::Mode
virtual void Mode(uint32_t value)=0
introvirt::windows::nt::FILE_MODE_INFORMATION::DeleteOnClose
bool DeleteOnClose() const
Check if the FILE_DELETE_ON_CLOSE flag is set.
introvirt
Core IntroVirt classes.
Definition
Cr0.hh:20