| 589 | return 1; |
| 590 | } |
| 591 | bool bCFileWriteStreamWriteChunk(uint64_t hStream, const void* pvData, int32_t cubData) |
| 592 | { |
| 593 | if (!Steam_Config::RemoteStorage) |
| 594 | return true; |
| 595 | |
| 596 | if (!hStream) |
| 597 | return false; |
| 598 | if (!pvData) |
| 599 | return false; |
| 600 | if (!cubData) |
| 601 | return false; |
| 602 | if (cubData > (100 * 1024 * 1024)) |
| 603 | return false; |
| 604 | |
| 605 | auto StreamRequested = Streams.find(hStream); |
| 606 | if (StreamRequested == Streams.end()) { |
| 607 | return false; |
| 608 | } |
| 609 | |
| 610 | // Write our data |
| 611 | if (StreamRequested->second.Buffer == nullptr) { |
| 612 | StreamRequested->second.Buffer = (char*)VirtualAlloc(nullptr, cubData, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); |
| 613 | if (!StreamRequested->second.Buffer) { |
| 614 | return false; |
| 615 | } |
| 616 | StreamRequested->second.lastbuffersize = cubData; |
| 617 | } |
| 618 | else { |
| 619 | if (cubData > StreamRequested->second.lastbuffersize) { |
| 620 | VirtualFree(StreamRequested->second.Buffer, NULL, MEM_RELEASE); |
| 621 | StreamRequested->second.Buffer = (char*)VirtualAlloc(nullptr, cubData, MEM_COMMIT | MEM_RESERVE, PAGE_READWRITE); |
| 622 | if (!StreamRequested->second.Buffer) { |
| 623 | return false; |
| 624 | } |
| 625 | StreamRequested->second.lastbuffersize = cubData; |
| 626 | } |
| 627 | } |
| 628 | std::memcpy(StreamRequested->second.Buffer, pvData, cubData); |
| 629 | return true; |
| 630 | } |
| 631 | bool bCFileWriteStreamClose(uint64_t hStream) |
| 632 | { |
| 633 | if (!Steam_Config::RemoteStorage) |
no outgoing calls