compute-runtime/shared/source/ail/windows/ail_configuration_windows.cpp

40 lines
1.0 KiB
C++
Raw Normal View History

/*
* Copyright (C) 2021 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include "shared/source/ail/ail_configuration.h"
#include "shared/source/os_interface/windows/sys_calls.h"
// Application detection is performed using the process name of the given application.
namespace NEO {
bool AILConfiguration::initProcessExecutableName() {
const DWORD length = MAX_PATH;
WCHAR processFilenameW[length];
char processFilename[length] = "";
auto status = SysCalls::getModuleFileName(nullptr, processFilenameW, MAX_PATH);
if (status != 0) {
std::wcstombs(processFilename, processFilenameW, MAX_PATH);
}
std::string_view pathView(processFilename);
auto lastPosition = pathView.find_last_of("\\");
pathView.remove_prefix(lastPosition + 1u);
lastPosition = pathView.find(".exe");
if (lastPosition != std::string_view::npos) {
pathView.remove_suffix(pathView.size() - lastPosition);
}
processName = pathView;
return status;
}
} // namespace NEO