184919fb24
Related work items: MSFT-32957145 Retrieved from https://microsoft.visualstudio.com os.2020 OS official/rs_wdx_dxp_windev bdb25dc99dcb2f1ee483dffe883d0178ea9d18dc
70 lines
1.9 KiB
C++
70 lines
1.9 KiB
C++
/*++
|
|
Copyright (c) Microsoft Corporation
|
|
Licensed under the MIT license.
|
|
|
|
Module Name:
|
|
- ProcessHandle.h
|
|
|
|
Abstract:
|
|
- This file defines the handles that were given to a particular client process ID when it connected.
|
|
|
|
Author:
|
|
- Michael Niksa (miniksa) 12-Oct-2016
|
|
|
|
Revision History:
|
|
- Adapted from original items in handle.h
|
|
--*/
|
|
|
|
#pragma once
|
|
|
|
#include "ObjectHandle.h"
|
|
#include "WaitQueue.h"
|
|
#include "ProcessPolicy.h"
|
|
#include "ConsoleShimPolicy.h"
|
|
|
|
#include <memory>
|
|
#include <wil/resource.h>
|
|
|
|
class ConsoleProcessHandle
|
|
{
|
|
public:
|
|
std::unique_ptr<ConsoleWaitQueue> const pWaitBlockQueue;
|
|
std::unique_ptr<ConsoleHandleData> pInputHandle;
|
|
std::unique_ptr<ConsoleHandleData> pOutputHandle;
|
|
|
|
bool fRootProcess;
|
|
|
|
DWORD const dwProcessId;
|
|
DWORD const dwThreadId;
|
|
|
|
const ConsoleProcessPolicy GetPolicy() const;
|
|
const ConsoleShimPolicy GetShimPolicy() const;
|
|
|
|
const HANDLE GetRawHandle() const;
|
|
|
|
CD_CONNECTION_INFORMATION GetConnectionInformation(IDeviceComm* deviceComm) const;
|
|
|
|
const ULONG64 GetProcessCreationTime() const;
|
|
|
|
private:
|
|
ConsoleProcessHandle(const DWORD dwProcessId,
|
|
const DWORD dwThreadId,
|
|
const ULONG ulProcessGroupId);
|
|
~ConsoleProcessHandle() = default;
|
|
ConsoleProcessHandle(const ConsoleProcessHandle&) = delete;
|
|
ConsoleProcessHandle(ConsoleProcessHandle&&) = delete;
|
|
ConsoleProcessHandle& operator=(const ConsoleProcessHandle&) & = delete;
|
|
ConsoleProcessHandle& operator=(ConsoleProcessHandle&&) & = delete;
|
|
|
|
ULONG _ulTerminateCount;
|
|
ULONG const _ulProcessGroupId;
|
|
wil::unique_handle const _hProcess;
|
|
|
|
mutable ULONG64 _processCreationTime;
|
|
|
|
const ConsoleProcessPolicy _policy;
|
|
const ConsoleShimPolicy _shimPolicy;
|
|
|
|
friend class ConsoleProcessList; // ensure List manages lifetimes and not other classes.
|
|
};
|