| 95 | } |
| 96 | |
| 97 | HRESULT XWinePatchImport(_In_opt_ HMODULE Module, _In_ HMODULE ImportModule, _In_ PCSTR Import, _In_ PVOID Function) |
| 98 | { |
| 99 | DWORD protect; |
| 100 | PIMAGE_THUNK_DATA pThunk; |
| 101 | HRESULT hr = XWineGetImport(Module, ImportModule, Import, &pThunk); |
| 102 | if (FAILED(hr)) |
| 103 | return hr; |
| 104 | |
| 105 | if (!VirtualProtect(&pThunk->u1.Function, sizeof(ULONG_PTR), PAGE_READWRITE, &protect)) |
| 106 | return GetLastError(); |
| 107 | |
| 108 | pThunk->u1.Function = (ULONG_PTR)Function; |
| 109 | |
| 110 | if (!VirtualProtect(&pThunk->u1.Function, sizeof(ULONG_PTR), protect, &protect)) |
| 111 | return GetLastError(); |
| 112 | |
| 113 | return S_OK; |
| 114 | } |
| 115 | |
| 116 | HRESULT PatchNeededImports(_In_opt_ HMODULE Module, _In_ HMODULE ImportModule, _In_ PCSTR Import, _In_ PVOID Function) |
| 117 | { |
no test coverage detected