#define WIN32_NO_STATUS #include #undef WIN32_NO_STATUS #include "deadlock_wrapper.h" // Important to include your own header #include "DLCK/deadlock.h" namespace deadlock_wrapper { // Safe cast — both structs have identical memory layout PPROCESS_HANDLE_SNAPSHOT_INFORMATION getProcessHandles(HANDLE hProcess) { return reinterpret_cast( deadlock::getProcessHandles(hProcess) ); } HANDLE dupHandle(HANDLE handleValue, HANDLE ownerProcess) { return deadlock::dupHandle(handleValue, ownerProcess); } bool isFileObj(HANDLE hFile) { return deadlock::isFileObj(hFile) ? true : false; } bool isDiskFile(HANDLE hFile) { return deadlock::isDiskFile(hFile) ? true : false; } const char* getFilePath(HANDLE hFile) { return deadlock::getFilePath(hFile); } bool remoteCloseHandle(HANDLE hProcess, HANDLE handleValue) { return deadlock::remoteCloseHandle(hProcess, handleValue) ? true : false; } }