References: =========== - [MS-SMB2]: 2.2.19
| 498 | |
| 499 | |
| 500 | class SMB2ReadRequest(Structure): |
| 501 | """ |
| 502 | References: |
| 503 | =========== |
| 504 | - [MS-SMB2]: 2.2.19 |
| 505 | """ |
| 506 | |
| 507 | STRUCTURE_FORMAT = "<HBBIQ16sIIIHH" |
| 508 | STRUCTURE_SIZE = struct.calcsize(STRUCTURE_FORMAT) |
| 509 | |
| 510 | def __init__(self, fid, read_offset, read_len, min_read_len = 0): |
| 511 | self.fid = fid |
| 512 | self.read_offset = read_offset |
| 513 | self.read_len = read_len |
| 514 | self.min_read_len = min_read_len |
| 515 | |
| 516 | def initMessage(self, message): |
| 517 | Structure.initMessage(self, message) |
| 518 | message.command = SMB2_COM_READ |
| 519 | |
| 520 | def prepare(self, message): |
| 521 | message.data = struct.pack(self.STRUCTURE_FORMAT, |
| 522 | 49, # Structure size. Must be 49 as mandated by [MS-SMB2] 2.2.19 |
| 523 | 0, # Padding |
| 524 | 0, # Reserved |
| 525 | self.read_len, |
| 526 | self.read_offset, |
| 527 | self.fid, |
| 528 | self.min_read_len, |
| 529 | 0, # Channel |
| 530 | 0, # RemainingBytes |
| 531 | 0, # ReadChannelInfoOffset |
| 532 | 0 # ReadChannelInfoLength |
| 533 | ) + b'\0' |
| 534 | |
| 535 | |
| 536 | class SMB2ReadResponse(Structure): |
no outgoing calls
no test coverage detected