(self, treeId, fileId, searchString = '*', resumeIndex = 0, informationClass = FILENAMES_INFORMATION, maxBufferSize = None, enumRestart = False, singleEntry = False)
| 1467 | return bytesWritten |
| 1468 | |
| 1469 | def queryDirectory(self, treeId, fileId, searchString = '*', resumeIndex = 0, informationClass = FILENAMES_INFORMATION, maxBufferSize = None, enumRestart = False, singleEntry = False): |
| 1470 | if (treeId in self._Session['TreeConnectTable']) is False: |
| 1471 | raise SessionError(STATUS_INVALID_PARAMETER) |
| 1472 | if (fileId in self._Session['OpenTable']) is False: |
| 1473 | raise SessionError(STATUS_INVALID_PARAMETER) |
| 1474 | |
| 1475 | packet = self.SMB_PACKET() |
| 1476 | packet['Command'] = SMB2_QUERY_DIRECTORY |
| 1477 | packet['TreeID'] = treeId |
| 1478 | |
| 1479 | queryDirectory = SMB2QueryDirectory() |
| 1480 | queryDirectory['FileInformationClass'] = informationClass |
| 1481 | if resumeIndex != 0 : |
| 1482 | queryDirectory['Flags'] = SMB2_INDEX_SPECIFIED |
| 1483 | queryDirectory['FileIndex'] = resumeIndex |
| 1484 | queryDirectory['FileID'] = fileId |
| 1485 | if maxBufferSize is None: |
| 1486 | maxBufferSize = self._Connection['MaxReadSize'] |
| 1487 | queryDirectory['OutputBufferLength'] = maxBufferSize |
| 1488 | queryDirectory['Buffer'] = searchString.encode('utf-16le') |
| 1489 | queryDirectory['FileNameLength'] = len(queryDirectory['Buffer']) |
| 1490 | |
| 1491 | |
| 1492 | packet['Data'] = queryDirectory |
| 1493 | |
| 1494 | if self._Connection['Dialect'] != SMB2_DIALECT_002 and self._Connection['SupportsMultiCredit'] is True: |
| 1495 | packet['CreditCharge'] = ( 1 + (maxBufferSize - 1) // 65536) |
| 1496 | |
| 1497 | packetID = self.sendSMB(packet) |
| 1498 | ans = self.recvSMB(packetID) |
| 1499 | if ans.isValidAnswer(STATUS_SUCCESS): |
| 1500 | queryDirectoryResponse = SMB2QueryDirectory_Response(ans['Data']) |
| 1501 | return queryDirectoryResponse['Buffer'] |
| 1502 | |
| 1503 | def echo(self): |
| 1504 | packet = self.SMB_PACKET() |
no test coverage detected