(handle: int, payload: bytes)
| 466 | |
| 467 | |
| 468 | def _write_all(handle: int, payload: bytes) -> None: |
| 469 | view = memoryview(payload) |
| 470 | offset = 0 |
| 471 | while offset < len(view): |
| 472 | chunk = bytes(view[offset : offset + _MAX_WRITE_CHUNK]) |
| 473 | buffer = ctypes.create_string_buffer(chunk, len(chunk)) |
| 474 | written = wintypes.DWORD() |
| 475 | if not _WriteFile(handle, buffer, len(chunk), ctypes.byref(written), None): |
| 476 | _raise_last_error("WriteFile") |
| 477 | if written.value == 0: |
| 478 | raise WindowsScanLocalFileError(errno.EIO, "WriteFile made no progress") |
| 479 | offset += written.value |
| 480 | if not _FlushFileBuffers(handle): |
| 481 | _raise_last_error("FlushFileBuffers") |
| 482 | |
| 483 | |
| 484 | def _rename_handle(handle: int, destination_path: Path) -> None: |
no test coverage detected