mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-07 21:27:04 +08:00
fix(sysman): Fix memory management issues in Sysman PMT windows module
Related-To: NEO-11251 Signed-off-by: Anvesh Bakwad <anvesh.bakwad@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
3e1d276233
commit
f75d03c866
@@ -175,6 +175,14 @@ CONFIGRET cmGetDeviceInterfaceList(LPGUID interfaceClassGuid, DEVINSTID_W pDevic
|
||||
return CM_Get_Device_Interface_List(interfaceClassGuid, pDeviceID, buffer, bufferLen, ulFlags);
|
||||
}
|
||||
|
||||
LPVOID heapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) {
|
||||
return HeapAlloc(hHeap, dwFlags, dwBytes);
|
||||
}
|
||||
|
||||
BOOL heapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem) {
|
||||
return HeapFree(hHeap, dwFlags, lpMem);
|
||||
}
|
||||
|
||||
SIZE_T virtualQuery(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength) {
|
||||
return VirtualQuery(lpAddress, lpBuffer, dwLength);
|
||||
}
|
||||
|
||||
@@ -56,6 +56,8 @@ HANDLE createFile(LPCWSTR lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode,
|
||||
BOOL deviceIoControl(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);
|
||||
CONFIGRET cmGetDeviceInterfaceListSize(PULONG pulLen, LPGUID interfaceClassGuid, DEVINSTID_W pDeviceID, ULONG ulFlags);
|
||||
CONFIGRET cmGetDeviceInterfaceList(LPGUID interfaceClassGuid, DEVINSTID_W pDeviceID, PZZWSTR buffer, ULONG bufferLen, ULONG ulFlags);
|
||||
LPVOID heapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes);
|
||||
BOOL heapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem);
|
||||
SIZE_T virtualQuery(LPCVOID lpAddress, PMEMORY_BASIC_INFORMATION lpBuffer, SIZE_T dwLength);
|
||||
} // namespace SysCalls
|
||||
|
||||
|
||||
@@ -65,6 +65,7 @@ extern HANDLE (*sysCallsCreateFile)(LPCWSTR lpFileName, DWORD dwDesiredAccess, D
|
||||
extern BOOL (*sysCallsDeviceIoControl)(HANDLE hDevice, DWORD dwIoControlCode, LPVOID lpInBuffer, DWORD nInBufferSize, LPVOID lpOutBuffer, DWORD nOutBufferSize, LPDWORD lpBytesReturned, LPOVERLAPPED lpOverlapped);
|
||||
extern CONFIGRET (*sysCallsCmGetDeviceInterfaceListSize)(PULONG pulLen, LPGUID interfaceClassGuid, DEVINSTID_W pDeviceID, ULONG ulFlags);
|
||||
extern CONFIGRET (*sysCallsCmGetDeviceInterfaceList)(LPGUID interfaceClassGuid, DEVINSTID_W pDeviceID, PZZWSTR buffer, ULONG bufferLen, ULONG ulFlags);
|
||||
|
||||
extern LPVOID (*sysCallsHeapAlloc)(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes);
|
||||
extern BOOL (*sysCallsHeapFree)(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem);
|
||||
} // namespace SysCalls
|
||||
} // namespace NEO
|
||||
} // namespace NEO
|
||||
@@ -111,6 +111,12 @@ CONFIGRET(*sysCallsCmGetDeviceInterfaceListSize)
|
||||
CONFIGRET(*sysCallsCmGetDeviceInterfaceList)
|
||||
(LPGUID interfaceClassGuid, DEVINSTID_W pDeviceID, PZZWSTR buffer, ULONG bufferLen, ULONG ulFlags) = nullptr;
|
||||
|
||||
LPVOID(*sysCallsHeapAlloc)
|
||||
(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) = nullptr;
|
||||
|
||||
BOOL(*sysCallsHeapFree)
|
||||
(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem) = nullptr;
|
||||
|
||||
bool pathExists(const std::string &path) {
|
||||
std::string tempP1 = path;
|
||||
if (!path.empty() && path.back() == PATH_SEPARATOR) {
|
||||
@@ -329,6 +335,20 @@ CONFIGRET cmGetDeviceInterfaceList(LPGUID interfaceClassGuid, DEVINSTID_W pDevic
|
||||
return -1;
|
||||
}
|
||||
|
||||
LPVOID heapAlloc(HANDLE hHeap, DWORD dwFlags, SIZE_T dwBytes) {
|
||||
if (sysCallsHeapAlloc != nullptr) {
|
||||
return sysCallsHeapAlloc(hHeap, dwFlags, dwBytes);
|
||||
}
|
||||
return HeapAlloc(hHeap, dwFlags, dwBytes);
|
||||
}
|
||||
|
||||
BOOL heapFree(HANDLE hHeap, DWORD dwFlags, LPVOID lpMem) {
|
||||
if (sysCallsHeapFree != nullptr) {
|
||||
return sysCallsHeapFree(hHeap, dwFlags, lpMem);
|
||||
}
|
||||
return HeapFree(hHeap, dwFlags, lpMem);
|
||||
}
|
||||
|
||||
LSTATUS regOpenKeyExA(HKEY hKey, LPCSTR lpSubKey, DWORD ulOptions, REGSAM samDesired, PHKEY phkResult) {
|
||||
if (regOpenKeySuccessCount > 0) {
|
||||
regOpenKeySuccessCount--;
|
||||
@@ -421,4 +441,4 @@ unsigned int readEnablePreemptionRegKey() {
|
||||
return 1;
|
||||
}
|
||||
|
||||
} // namespace NEO
|
||||
} // namespace NEO
|
||||
Reference in New Issue
Block a user