HRESULT WINAPI D3DXLoadVolumeFromFileW(IDirect3DVolume9 *dst_volume, const PALETTEENTRY *dst_palette, const D3DBOX *dst_box, const WCHAR *filename, const D3DBOX *src_box, DWORD filter, D3DCOLOR color_key, D3DXIMAGE_INFO *info) { HRESULT hr; void *data; UINT data_size; TRACE("(%p, %p, %p, %s, %p, %#x, %#x, %p)\n", dst_volume, dst_palette, dst_box, debugstr_w(filename), src_box, filter, color_key, info); if (!dst_volume || !filename) return D3DERR_INVALIDCALL; if (FAILED(map_view_of_file(filename, &data, &data_size))) return D3DXERR_INVALIDDATA; hr = D3DXLoadVolumeFromFileInMemory(dst_volume, dst_palette, dst_box, data, data_size, src_box, filter, color_key, info); UnmapViewOfFile(data); return hr; }
inline void osmium::util::MemoryMapping::resize(size_t new_size) { unmap(); m_size = new_size; resize_fd(m_fd); m_handle = create_file_mapping(); if (!m_handle) { throw std::system_error(GetLastError(), std::system_category(), "CreateFileMapping failed"); } m_addr = map_view_of_file(); if (!is_valid()) { throw std::system_error(GetLastError(), std::system_category(), "MapViewOfFile failed"); } }
inline osmium::util::MemoryMapping::MemoryMapping(size_t size, MemoryMapping::mapping_mode mode, int fd, off_t offset) : m_size(check_size(size)), m_offset(offset), m_fd(resize_fd(fd)), m_mapping_mode(mode), m_handle(create_file_mapping()), m_addr(nullptr) { if (!m_handle) { throw std::system_error(GetLastError(), std::system_category(), "CreateFileMapping failed"); } m_addr = map_view_of_file(); if (!is_valid()) { throw std::system_error(GetLastError(), std::system_category(), "MapViewOfFile failed"); } }