References: =========== - [MS-SMB2]: 2.2.21
| 440 | |
| 441 | |
| 442 | class SMB2WriteRequest(Structure): |
| 443 | """ |
| 444 | References: |
| 445 | =========== |
| 446 | - [MS-SMB2]: 2.2.21 |
| 447 | """ |
| 448 | |
| 449 | STRUCTURE_FORMAT = "<HHIQ16sIIHHI" |
| 450 | STRUCTURE_SIZE = struct.calcsize(STRUCTURE_FORMAT) |
| 451 | |
| 452 | def __init__(self, fid, data, offset, remaining_len = 0, flags = 0): |
| 453 | assert len(fid) == 16 |
| 454 | self.fid = fid |
| 455 | self.data = data |
| 456 | self.offset = offset |
| 457 | self.remaining_len = remaining_len |
| 458 | self.flags = flags |
| 459 | |
| 460 | def initMessage(self, message): |
| 461 | Structure.initMessage(self, message) |
| 462 | message.command = SMB2_COM_WRITE |
| 463 | |
| 464 | def prepare(self, message): |
| 465 | message.data = struct.pack(self.STRUCTURE_FORMAT, |
| 466 | 49, # Structure size. Must be 49 as mandated by [MS-SMB2] 2.2.21 |
| 467 | SMB2Message.HEADER_SIZE + self.STRUCTURE_SIZE, # DataOffset |
| 468 | len(self.data), |
| 469 | self.offset, |
| 470 | self.fid, |
| 471 | 0, # Channel. Must be 0 |
| 472 | self.remaining_len, # RemainingBytes |
| 473 | 0, # WriteChannelInfoOffset, |
| 474 | 0, # WriteChannelInfoLength |
| 475 | self.flags) + self.data |
| 476 | |
| 477 | |
| 478 | class SMB2WriteResponse(Structure): |
no outgoing calls
no test coverage detected