ae.sys.windows.process

Windows process utility code.

Members

Aliases

CreatedProcess
alias CreatedProcess = RefCounted!_CreatedProcessImpl
Undocumented in source.
HeapIterator
alias HeapIterator = ToolhelpIterator!(HEAPLIST32, Heap32ListFirst, Heap32ListNext)
Undocumented in source.
ModuleIterator
alias ModuleIterator = ToolhelpIterator!(MODULEENTRY32, Module32First, Module32Next)
Undocumented in source.
ProcessIterator
alias ProcessIterator = ToolhelpIterator!(PROCESSENTRY32, Process32First, Process32Next)
Undocumented in source.
RemoteAddress
alias RemoteAddress = ubyte*

Read/WriteProcessMemory helpers.

ThreadIterator
alias ThreadIterator = ToolhelpIterator!(THREADENTRY32, Thread32First, Thread32Next)
Undocumented in source.
ToolhelpSnapshot
alias ToolhelpSnapshot = RefCounted!_ToolhelpSnapshotImpl
Undocumented in source.

Functions

createDesktopUserProcess
CreatedProcess createDesktopUserProcess(string applicationName, string commandLine, STARTUPINFOW si)

Create a non-elevated process, if the current process is elevated.

createProcess
CreatedProcess createProcess(string applicationName, string commandLine, STARTUPINFOW si)
CreatedProcess createProcess(string applicationName, string commandLine, string currentDirectory, STARTUPINFOW si)

Create a Windows process.

createToolhelpSnapshot
ToolhelpSnapshot createToolhelpSnapshot(DWORD dwFlags, DWORD th32ProcessID)

CreateToolhelp32Snapshot wrapper.

readProcessMemory
void readProcessMemory(HANDLE h, RemoteAddress addr, void[] data)
Undocumented in source. Be warned that the author may not have intended to support it.
readProcessVar
void readProcessVar(HANDLE h, RemoteAddress addr, T* v)
Undocumented in source. Be warned that the author may not have intended to support it.
readProcessVar
T readProcessVar(HANDLE h, RemoteAddress addr)
Undocumented in source. Be warned that the author may not have intended to support it.
writeProcessMemory
void writeProcessMemory(HANDLE h, RemoteAddress addr, const(void)[] data)
Undocumented in source. Be warned that the author may not have intended to support it.
writeProcessVar
void writeProcessVar(HANDLE h, RemoteAddress addr, T v)
Undocumented in source. Be warned that the author may not have intended to support it.

Properties

heaps
HeapIterator heaps [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.
modules
ModuleIterator modules [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.
processes
ProcessIterator processes [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.
threads
ThreadIterator threads [@property getter]
Undocumented in source. Be warned that the author may not have intended to support it.

Structs

ProcessWatcher
struct ProcessWatcher

Maintains a list of currently running processes, and notifies the caller about new or exited processes.

RemoteProcessVarImpl
struct RemoteProcessVarImpl(T)

Binding to a variable located in another process. Automatically allocates and deallocates remote memory. Use .read() and .write() to update local/remote data.

ToolhelpIterator
struct ToolhelpIterator(STRUCT, alias FirstFunc, alias NextFunc)

D ranges wrapping iteration over Toolhelp32Snapshot lists.

_CreatedProcessImpl
struct _CreatedProcessImpl

Wraps a created Windows process. Similar to std.process.Pid

_ToolhelpSnapshotImpl
struct _ToolhelpSnapshotImpl

Wraps a Toolhelp32Snapshot handle.

Templates

RemoteProcessVar
template RemoteProcessVar(T)
Undocumented in source.

Meta

License

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Authors

Vladimir Panteleev <ae@cy.md>