libintrovirt v0.57.4
IntroVirt introspection library
Loading...
Searching...
No Matches
STARTUPINFOA.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
20
21#include <cstdint>
22#include <memory>
23
24namespace introvirt {
25namespace windows {
26namespace kernel32 {
27
28// Values for dwFlags
29constexpr unsigned int STARTF_USESHOWWINDOW = 0x00000001;
30
31// Values for wShowWindow
32constexpr unsigned int SW_HIDE = 0;
33
35 public:
36 virtual uint32_t cb() const = 0;
37 virtual void cb(uint32_t cb) = 0;
38
39 virtual guest_ptr<char[]> lpReserved() const = 0;
40 virtual void lpReserved(const guest_ptr<char[]>& lpReserved) = 0;
41
42 virtual guest_ptr<char[]> lpDesktop() const = 0;
43 virtual void lpDesktop(const guest_ptr<char[]>& lpDesktop) = 0;
44
45 virtual guest_ptr<char[]> lpTitle() const = 0;
46 virtual void lpTitle(const guest_ptr<char[]>& lpTitle) = 0;
47
48 virtual uint32_t dwX() const = 0;
49 virtual void dwX(uint32_t dwX) = 0;
50
51 virtual uint32_t dwY() const = 0;
52 virtual void dwY(uint32_t dwY) = 0;
53
54 virtual uint32_t dwXSize() const = 0;
55 virtual void dwXSize(uint32_t dwXSize) = 0;
56
57 virtual uint32_t dwYSize() const = 0;
58 virtual void dwYSize(uint32_t dwYSize) = 0;
59
60 virtual uint32_t dwXCountChars() const = 0;
61 virtual void dwXCountChars(uint32_t dwXCountChars) = 0;
62
63 virtual uint32_t dwYCountChars() const = 0;
64 virtual void dwYCountChars(uint32_t dwYCountChars) = 0;
65
66 virtual uint32_t dwFillAttribute() const = 0;
67 virtual void dwFillAttribute(uint32_t dwFillAttribute) = 0;
68
69 virtual uint32_t dwFlags() const = 0;
70 virtual void dwFlags(uint32_t dwFlags) = 0;
71
72 virtual uint16_t wShowWindow() const = 0;
73 virtual void wShowWindow(uint16_t wShowWindow) = 0;
74
75 virtual uint16_t cbReserved2() const = 0;
76 virtual void cbReserved2(uint16_t cbReserved2) = 0;
77
78 virtual guest_ptr<uint8_t[]> lpReserved2() const = 0;
79 virtual void lpReserved2(const guest_ptr<uint8_t[]>& lpReserved2) = 0;
80
81 virtual uint64_t hStdInput() const = 0;
82 virtual void hStdInput(uint64_t hStdInput) = 0;
83
84 virtual uint64_t hStdOutput() const = 0;
85 virtual void hStdOutput(uint64_t hStdOutput) = 0;
86
87 virtual uint64_t hStdError() const = 0;
88 virtual void hStdError(uint64_t hStdError) = 0;
89
90 virtual guest_ptr<void> address() const = 0;
91
92 static std::shared_ptr<STARTUPINFOA> make_shared(const guest_ptr<void>& ptr, bool x64);
93
94 virtual ~STARTUPINFOA() = default;
95};
96
97} // namespace kernel32
98} // namespace windows
99
100namespace inject {
101
102template <>
103class GuestAllocation<windows::kernel32::STARTUPINFOA> final
104 : public GuestAllocationComplexBase<windows::kernel32::STARTUPINFOA> {
105 public:
106 explicit GuestAllocation();
107};
108
109} // namespace inject
110
111} // namespace introvirt
Definition guest_ptr.hh:88
Definition GuestAllocation.hh:179
Definition GuestAllocation.hh:31
Definition STARTUPINFOA.hh:34
static std::shared_ptr< STARTUPINFOA > make_shared(const guest_ptr< void > &ptr, bool x64)
virtual uint32_t dwYCountChars() const =0
virtual void lpReserved(const guest_ptr< char[]> &lpReserved)=0
virtual uint64_t hStdOutput() const =0
virtual void hStdError(uint64_t hStdError)=0
virtual uint32_t dwXCountChars() const =0
virtual void dwFlags(uint32_t dwFlags)=0
virtual void hStdOutput(uint64_t hStdOutput)=0
virtual guest_ptr< void > address() const =0
virtual uint64_t hStdError() const =0
virtual uint32_t dwYSize() const =0
virtual void dwX(uint32_t dwX)=0
virtual void dwYSize(uint32_t dwYSize)=0
virtual uint32_t dwFillAttribute() const =0
virtual void dwXSize(uint32_t dwXSize)=0
virtual uint16_t cbReserved2() const =0
virtual void dwY(uint32_t dwY)=0
virtual void lpReserved2(const guest_ptr< uint8_t[]> &lpReserved2)=0
virtual void cbReserved2(uint16_t cbReserved2)=0
virtual uint64_t hStdInput() const =0
virtual guest_ptr< char[]> lpReserved() const =0
virtual void lpTitle(const guest_ptr< char[]> &lpTitle)=0
virtual void hStdInput(uint64_t hStdInput)=0
virtual void wShowWindow(uint16_t wShowWindow)=0
virtual guest_ptr< char[]> lpDesktop() const =0
virtual guest_ptr< char[]> lpTitle() const =0
virtual uint16_t wShowWindow() const =0
virtual void dwYCountChars(uint32_t dwYCountChars)=0
virtual void dwXCountChars(uint32_t dwXCountChars)=0
virtual void dwFillAttribute(uint32_t dwFillAttribute)=0
virtual uint32_t dwXSize() const =0
virtual void lpDesktop(const guest_ptr< char[]> &lpDesktop)=0
virtual uint32_t dwFlags() const =0
virtual guest_ptr< uint8_t[]> lpReserved2() const =0
Type-safe guest virtual address pointer and guest_ptr template.
constexpr unsigned int SW_HIDE
Definition STARTUPINFOA.hh:32
constexpr unsigned int STARTF_USESHOWWINDOW
Definition STARTUPINFOA.hh:29
Core IntroVirt classes.
Definition Cr0.hh:20