| 611 | } |
| 612 | |
| 613 | BOOL |
| 614 | CryptFileForward::LockFile(LONGLONG ByteOffset, LONGLONG Length) |
| 615 | { |
| 616 | if (m_real_file_size == (long long)-1) |
| 617 | return FALSE; |
| 618 | |
| 619 | long long start_block = ByteOffset / PLAIN_BS; |
| 620 | |
| 621 | long long end_block = (ByteOffset + Length - 1) / PLAIN_BS; |
| 622 | |
| 623 | long long start_offset = CIPHER_FILE_OVERHEAD + start_block*CIPHER_BS; |
| 624 | |
| 625 | long long end_offset = CIPHER_FILE_OVERHEAD + end_block*CIPHER_BS; |
| 626 | |
| 627 | long long length = end_offset - start_offset; |
| 628 | |
| 629 | |
| 630 | LARGE_INTEGER off, len; |
| 631 | |
| 632 | off.QuadPart = start_offset; |
| 633 | |
| 634 | len.QuadPart = length; |
| 635 | |
| 636 | return ::LockFile(m_handle, off.LowPart, off.HighPart, len.LowPart, len.HighPart); |
| 637 | } |
| 638 | |
| 639 | BOOL |
| 640 | CryptFileForward::UnlockFile(LONGLONG ByteOffset, LONGLONG Length) |
no outgoing calls
no test coverage detected