MCPcopy Create free account
hub / github.com/Rat431/ColdAPI_Steam / bCFileWriteStreamWriteChunk

Function bCFileWriteStreamWriteChunk

src/ColdAPI_Steam/ColdManager.cpp:591–630  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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)

Calls

no outgoing calls

Tested by 4