Python win32file.GENERIC_WRITE Examples
The following are 20
code examples of win32file.GENERIC_WRITE().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
win32file
, or try the search function
.
Example #1
Source File: test_win32file.py From ironpython2 with Apache License 2.0 | 8 votes |
def testSimpleFiles(self): try: fd, filename = tempfile.mkstemp() except AttributeError: self.fail("This test requires Python 2.3 or later") os.close(fd) os.unlink(filename) handle = win32file.CreateFile(filename, win32file.GENERIC_WRITE, 0, None, win32con.CREATE_NEW, 0, None) test_data = str2bytes("Hello\0there") try: win32file.WriteFile(handle, test_data) handle.Close() # Try and open for read handle = win32file.CreateFile(filename, win32file.GENERIC_READ, 0, None, win32con.OPEN_EXISTING, 0, None) rc, data = win32file.ReadFile(handle, 1024) self.assertEquals(data, test_data) finally: handle.Close() try: os.unlink(filename) except os.error: pass # A simple test using normal read/write operations.
Example #2
Source File: win32.py From rekall with GNU General Public License v2.0 | 6 votes |
def _OpenFileForWrite(self, path): try: fhandle = self.fhandle = win32file.CreateFile( path, win32file.GENERIC_READ | win32file.GENERIC_WRITE, win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL, None) self.write_enabled = True self._closer = weakref.ref( self, lambda x: win32file.CloseHandle(fhandle)) return fhandle except pywintypes.error as e: raise IOError("Unable to open %s: %s" % (path, e))
Example #3
Source File: modify_timestamp.py From BrainDamage with Apache License 2.0 | 6 votes |
def changeTimestamp(path,fileName,daylimit): print '[*] Inside changeTimestamp' dates = {} fileName = os.path.join(path, fileName) dates['tdata'] = getDate(fileName,daylimit) dates['ctime'] = datetime.utcfromtimestamp(os.path.getctime(fileName)) # print "[*] Original time: ",str(dates['ctime']) if __use_win_32: filehandle = win32file.CreateFile(fileName, win32file.GENERIC_WRITE, 0, None, win32con.OPEN_EXISTING, 0, None) win32file.SetFileTime(filehandle, dates['tdata'],dates['tdata'],dates['tdata']) filehandle.close() print "[*] Timestamps changed!!" else: os.utime(fileName, (time.mktime(dates['tdata'].utctimetuple()),)*2) dates['mtime'] = datetime.utcfromtimestamp(os.path.getmtime(fileName)) # print "[*] Modified time: ",str(dates['mtime'])
Example #4
Source File: win32fileDemo.py From ironpython2 with Apache License 2.0 | 6 votes |
def SimpleFileDemo(): testName = os.path.join( win32api.GetTempPath(), "win32file_demo_test_file") if os.path.exists(testName): os.unlink(testName) # Open the file for writing. handle = win32file.CreateFile(testName, win32file.GENERIC_WRITE, 0, None, win32con.CREATE_NEW, 0, None) test_data = "Hello\0there".encode("ascii") win32file.WriteFile(handle, test_data) handle.Close() # Open it for reading. handle = win32file.CreateFile(testName, win32file.GENERIC_READ, 0, None, win32con.OPEN_EXISTING, 0, None) rc, data = win32file.ReadFile(handle, 1024) handle.Close() if data == test_data: print "Successfully wrote and read a file" else: raise Exception("Got different data back???") os.unlink(testName)
Example #5
Source File: dump.py From Fastir_Collector with GNU General Public License v3.0 | 6 votes |
def csv_export_ram(self): """Dump ram using winpmem""" hSvc = create_driver_service(self.logger) start_service(hSvc, self.logger) try: fd = win32file.CreateFile( "\\\\.\\pmem", win32file.GENERIC_READ | win32file.GENERIC_WRITE, win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL, None) try: t = time.time() image = _Image(fd) self.logger.info("Imaging to " + self.output_dir + '\\' + self.computer_name + '_memdump.raw') image.DumpWithRead(self.output_dir + '\\' + self.computer_name + '_memdump.raw') self.logger.info("Completed in %s seconds" % (time.time() - t)) finally: win32file.CloseHandle(fd) finally: stop_and_delete_driver_service(hSvc)
Example #6
Source File: WindowsServer.py From pycopia with Apache License 2.0 | 6 votes |
def CreateFile(self, fname, mode="r", bufsize=-1): "Open a file the same way a File Directory migration engine would." fname = cygwin2nt(fname) UserLog.msg("CreateFile", fname) if mode == "r": wmode = win32file.GENERIC_READ elif mode == "w": wmode = win32file.GENERIC_WRITE elif mode in ( 'r+', 'w+', 'a+'): wmode = win32file.GENERIC_READ | win32file.GENERIC_WRITE else: raise ValueError, "invalid file mode" h = win32file.CreateFile( fname, # CTSTR lpFileName, wmode, # DWORD dwDesiredAccess, win32file.FILE_SHARE_DELETE | win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, # DWORD dwShareMode, None, # LPSECURITY_ATTRIBUTES lpSecurityAttributes, win32file.OPEN_EXISTING, # DWORD dwCreationDisposition, win32file.FILE_ATTRIBUTE_NORMAL, # DWORD dwFlagsAndAttributes, 0, # HANDLE hTemplateFile ) self._files[int(h)] = h return int(h)
Example #7
Source File: virtio_console_guest.py From avocado-vt with GNU General Public License v2.0 | 6 votes |
def open(self, name): """ Direct open devices. :param name: Port name. :return: 0 on success """ path = self.ports[name]['path'] try: self.files[path] = win32file.CreateFile(path, win32file.GENERIC_WRITE | win32file.GENERIC_READ, 0, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL, None) except win32file.error as exc_detail: print("%s\nFAIL: Failed open file %s" % (str(exc_detail), name)) return exc_detail print("PASS: All files opened correctly.")
Example #8
Source File: __init__.py From EventGhost with GNU General Public License v2.0 | 5 votes |
def Connect(self): """ This function tries to connect to the named pipe from AlternateMceIrService. If it can't connect, it will periodically retry until the plugin is stopped or the connection is made. """ self.connecting = True #eg.PrintNotice("MCE_Vista: Connect started") while self.file is None and self.keepRunning: self.SetReceiving(False) try: self.file = win32file.CreateFile(r'\\.\pipe\MceIr',win32file.GENERIC_READ |win32file.GENERIC_WRITE,0,None, win32file.OPEN_EXISTING,win32file.FILE_ATTRIBUTE_NORMAL |win32file.FILE_FLAG_OVERLAPPED,None) if self.sentMessageOnce: eg.PrintNotice("MCE_Vista: Connected to MceIr pipe, started handling IR events") self.plugin.TriggerEvent("Connected") self.sentMessageOnce = False except: if not self.sentMessageOnce: eg.PrintNotice("MCE_Vista: MceIr pipe is not available, app doesn't seem to be running") eg.PrintNotice(" Will continue to try to connect to MceIr") eg.PrintNotice(" Message = %s"%win32api.FormatMessage(win32api.GetLastError())) self.plugin.TriggerEvent("Disconnected") self.sentMessageOnce = True #if self.service and IsServiceStopped(self.service): # eg.PrintNotice("MCE_Vista: MceIr service is stopped, trying to start it...") # StartService(self.service) time.sleep(1) self.connecting = False return
Example #9
Source File: artifact_extractor.py From ArtifactExtractor with Apache License 2.0 | 5 votes |
def _preserve_timestamps(file_entry, output_path): """Obtain and set (to preserve) original timestamps of exported files.""" stat_object = file_entry.GetStat() if os.name == WINDOWS_IDENTIFIER: accessed = created = modified = dt.now() if stat_object.atime: if stat_object.atime_nano: accessed = dt.fromtimestamp((float(str(stat_object.atime) + '.' + str(stat_object.atime_nano)))) else: accessed = dt.fromtimestamp(stat_object.atime) if stat_object.crtime: if stat_object.crtime_nano: created = dt.fromtimestamp((float(str(stat_object.crtime) + '.' + str(stat_object.crtime_nano)))) else: created = dt.fromtimestamp(stat_object.crtime) if stat_object.mtime: if stat_object.mtime_nano: modified = dt.fromtimestamp((float(str(stat_object.mtime) + '.' + str(stat_object.mtime_nano)))) else: modified = dt.fromtimestamp(stat_object.mtime) handle = CreateFileW(output_path, GENERIC_WRITE, FILE_SHARE_WRITE, None, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, None) SetFileTime(handle, created, accessed, modified) # does not seem to preserve nano precision of timestamps CloseHandle(handle) else: os.utime(output_path, (stat_object.atime, stat_object.mtime))
Example #10
Source File: npipesocket.py From deepWordBug with Apache License 2.0 | 5 votes |
def connect(self, address): win32pipe.WaitNamedPipe(address, self._timeout) try: handle = win32file.CreateFile( address, win32file.GENERIC_READ | win32file.GENERIC_WRITE, 0, None, win32file.OPEN_EXISTING, cSECURITY_ANONYMOUS | cSECURITY_SQOS_PRESENT, 0 ) except win32pipe.error as e: # See Remarks: # https://msdn.microsoft.com/en-us/library/aa365800.aspx if e.winerror == cERROR_PIPE_BUSY: # Another program or thread has grabbed our pipe instance # before we got to it. Wait for availability and attempt to # connect again. win32pipe.WaitNamedPipe(address, RETRY_WAIT_TIMEOUT) return self.connect(address) raise e self.flags = win32pipe.GetNamedPipeInfo(handle)[0] self._handle = handle self._address = address
Example #11
Source File: controller.py From libmelee with GNU Lesser General Public License v3.0 | 5 votes |
def connect(self): """Connect the controller to the console NOTE: Blocks until the other side is ready """ if self._is_dolphin: if platform.system() == "Windows": # "Create File" in windows is what you use to open a file. Not # create one. Because the windows API is stupid. self.pipe = win32file.CreateFile( self.pipe_path, win32file.GENERIC_WRITE, 0, None, win32file.OPEN_EXISTING, 0, None ) else: self.pipe = open(self.pipe_path, "w") return True else: # Remove any extra garbage that might have accumulated in the buffer self.tastm32.reset_input_buffer() # Send reset command self.tastm32.write(b'R') cmd = self.tastm32.read(2) if cmd != b'\x01R': # TODO Better error handling logic here print("ERROR: TAStm32 did not reset properly. Try power cycling it.") return False # Set to gamecube mode self.tastm32.write(b'SAG\x80\x00') cmd = self.tastm32.read(2) self.tastm32.reset_input_buffer() if cmd != b'\x01S': # TODO Better error handling logic here print("ERROR: TAStm32 did not set to GCN mode. Try power cycling it.") return False return True
Example #12
Source File: mpv.py From trakt-scrobbler with GNU General Public License v2.0 | 5 votes |
def conn_loop(self): self.is_running = True self.update_vars() self.file_handle = win32file.CreateFile( self.ipc_path, win32file.GENERIC_READ | win32file.GENERIC_WRITE, 0, None, win32file.OPEN_EXISTING, 0, None ) while self.is_running: try: while not self.write_queue.empty(): win32file.WriteFile( self.file_handle, self.write_queue.get_nowait()) except win32file.error: logger.debug('Exception while writing to pipe.', exc_info=True) self.is_running = False break size = win32file.GetFileSize(self.file_handle) if size > 0: while size > 0: # pipe has data to read _, data = win32file.ReadFile(self.file_handle, 4096) self.on_data(data) size = win32file.GetFileSize(self.file_handle) else: time.sleep(1) win32file.CloseHandle(self.file_handle) logger.debug('Pipe closed.')
Example #13
Source File: test_win32file.py From ironpython2 with Apache License 2.0 | 5 votes |
def testSimpleOverlapped(self): # Create a file in the %TEMP% directory. import win32event testName = os.path.join( win32api.GetTempPath(), "win32filetest.dat" ) desiredAccess = win32file.GENERIC_WRITE overlapped = pywintypes.OVERLAPPED() evt = win32event.CreateEvent(None, 0, 0, None) overlapped.hEvent = evt # Create the file and write shit-loads of data to it. h = win32file.CreateFile( testName, desiredAccess, 0, None, win32file.CREATE_ALWAYS, 0, 0) chunk_data = str2bytes("z") * 0x8000 num_loops = 512 expected_size = num_loops * len(chunk_data) for i in range(num_loops): win32file.WriteFile(h, chunk_data, overlapped) win32event.WaitForSingleObject(overlapped.hEvent, win32event.INFINITE) overlapped.Offset = overlapped.Offset + len(chunk_data) h.Close() # Now read the data back overlapped overlapped = pywintypes.OVERLAPPED() evt = win32event.CreateEvent(None, 0, 0, None) overlapped.hEvent = evt desiredAccess = win32file.GENERIC_READ h = win32file.CreateFile( testName, desiredAccess, 0, None, win32file.OPEN_EXISTING, 0, 0) buffer = win32file.AllocateReadBuffer(0xFFFF) while 1: try: hr, data = win32file.ReadFile(h, buffer, overlapped) win32event.WaitForSingleObject(overlapped.hEvent, win32event.INFINITE) overlapped.Offset = overlapped.Offset + len(data) if not data is buffer: self.fail("Unexpected result from ReadFile - should be the same buffer we passed it") except win32api.error: break h.Close()
Example #14
Source File: test_win32file.py From ironpython2 with Apache License 2.0 | 5 votes |
def testFileTimesTimezones(self): if not issubclass(pywintypes.TimeType, datetime.datetime): # maybe should report 'skipped', but that's not quite right as # there is nothing you can do to avoid it being skipped! return filename = tempfile.mktemp("-testFileTimes") now_utc = win32timezone.utcnow() now_local = now_utc.astimezone(win32timezone.TimeZoneInfo.local()) h = win32file.CreateFile(filename, win32file.GENERIC_READ|win32file.GENERIC_WRITE, 0, None, win32file.CREATE_ALWAYS, 0, 0) try: win32file.SetFileTime(h, now_utc, now_utc, now_utc) ct, at, wt = win32file.GetFileTime(h) self.failUnlessEqual(now_local, ct) self.failUnlessEqual(now_local, at) self.failUnlessEqual(now_local, wt) # and the reverse - set local, check against utc win32file.SetFileTime(h, now_local, now_local, now_local) ct, at, wt = win32file.GetFileTime(h) self.failUnlessEqual(now_utc, ct) self.failUnlessEqual(now_utc, at) self.failUnlessEqual(now_utc, wt) finally: h.close() os.unlink(filename)
Example #15
Source File: test_win32file.py From ironpython2 with Apache License 2.0 | 5 votes |
def testFilePointer(self): # via [ 979270 ] SetFilePointer fails with negative offset # Create a file in the %TEMP% directory. filename = os.path.join( win32api.GetTempPath(), "win32filetest.dat" ) f = win32file.CreateFile(filename, win32file.GENERIC_READ|win32file.GENERIC_WRITE, 0, None, win32file.CREATE_ALWAYS, win32file.FILE_ATTRIBUTE_NORMAL, 0) try: #Write some data data = str2bytes('Some data') (res, written) = win32file.WriteFile(f, data) self.failIf(res) self.assertEqual(written, len(data)) #Move at the beginning and read the data win32file.SetFilePointer(f, 0, win32file.FILE_BEGIN) (res, s) = win32file.ReadFile(f, len(data)) self.failIf(res) self.assertEqual(s, data) #Move at the end and read the data win32file.SetFilePointer(f, -len(data), win32file.FILE_END) (res, s) = win32file.ReadFile(f, len(data)) self.failIf(res) self.failUnlessEqual(s, data) finally: f.Close() os.unlink(filename)
Example #16
Source File: test_win32file.py From ironpython2 with Apache License 2.0 | 5 votes |
def testMoreFiles(self): # Create a file in the %TEMP% directory. testName = os.path.join( win32api.GetTempPath(), "win32filetest.dat" ) desiredAccess = win32file.GENERIC_READ | win32file.GENERIC_WRITE # Set a flag to delete the file automatically when it is closed. fileFlags = win32file.FILE_FLAG_DELETE_ON_CLOSE h = win32file.CreateFile( testName, desiredAccess, win32file.FILE_SHARE_READ, None, win32file.CREATE_ALWAYS, fileFlags, 0) # Write a known number of bytes to the file. data = str2bytes("z") * 1025 win32file.WriteFile(h, data) self.failUnless(win32file.GetFileSize(h) == len(data), "WARNING: Written file does not have the same size as the length of the data in it!") # Ensure we can read the data back. win32file.SetFilePointer(h, 0, win32file.FILE_BEGIN) hr, read_data = win32file.ReadFile(h, len(data)+10) # + 10 to get anything extra self.failUnless(hr==0, "Readfile returned %d" % hr) self.failUnless(read_data == data, "Read data is not what we wrote!") # Now truncate the file at 1/2 its existing size. newSize = len(data)//2 win32file.SetFilePointer(h, newSize, win32file.FILE_BEGIN) win32file.SetEndOfFile(h) self.failUnlessEqual(win32file.GetFileSize(h), newSize) # GetFileAttributesEx/GetFileAttributesExW tests. self.failUnlessEqual(win32file.GetFileAttributesEx(testName), win32file.GetFileAttributesExW(testName)) attr, ct, at, wt, size = win32file.GetFileAttributesEx(testName) self.failUnless(size==newSize, "Expected GetFileAttributesEx to return the same size as GetFileSize()") self.failUnless(attr==win32file.GetFileAttributes(testName), "Expected GetFileAttributesEx to return the same attributes as GetFileAttributes") h = None # Close the file by removing the last reference to the handle! self.failUnless(not os.path.isfile(testName), "After closing the file, it still exists!")
Example #17
Source File: Storage_base.py From BitTorrent with GNU General Public License v3.0 | 4 votes |
def open_sparse_file(path, mode, length=0, overlapped=False): supported = get_sparse_files_support(path) flags = 0 # some day I might support sparse files elsewhere if not supported and os.name != 'nt': return file(path, mode, 0) flags = win32file.FILE_FLAG_RANDOM_ACCESS if overlapped: flags |= win32file.FILE_FLAG_OVERLAPPED # If the hFile handle is opened with the # FILE_FLAG_NO_BUFFERING flag set, an application can move the # file pointer only to sector-aligned positions. A # sector-aligned position is a position that is a whole number # multiple of the volume sector size. An application can # obtain a volume sector size by calling the GetDiskFreeSpace # function. #flags |= win32file.FILE_FLAG_NO_BUFFERING access = win32file.GENERIC_READ # Shared write is necessary because lock is assigned # per file handle. --Dave share = win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE #share = win32file.FILE_SHARE_READ #| win32file.FILE_SHARE_WRITE if is_open_for_write(mode): access |= win32file.GENERIC_WRITE if isinstance(path, unicode): CreateFile = win32file.CreateFileW else: CreateFile = win32file.CreateFile handle = CreateFile(path, access, share, None, win32file.OPEN_ALWAYS, flags, None) if supported and is_open_for_write(mode): _sparse_magic(handle, length) fd = win32file._open_osfhandle(handle, os.O_BINARY) handle.Detach() f = os.fdopen(fd, mode) return f
Example #18
Source File: win32pmem.py From volatility with GNU General Public License v2.0 | 4 votes |
def __init__(self, base, config, **kwargs): self.as_assert(base == None, 'Must be first Address Space') addrspace.AbstractRunBasedMemory.__init__(self, base, config, **kwargs) self.fhandle = win32file.CreateFile( "\\\\.\\pmem", win32file.GENERIC_READ | win32file.GENERIC_WRITE, win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL, None) self.ParseMemoryRuns()
Example #19
Source File: tun-ping-responder.py From pyvpn with The Unlicense | 4 votes |
def openTunTap(): ''' \brief Open a TUN/TAP interface and switch it to TUN mode. \return The handler of the interface, which can be used for later read/write operations. ''' # retrieve the ComponentId from the TUN/TAP interface componentId = get_tuntap_ComponentId() print('componentId = {0}'.format(componentId)) # create a win32file for manipulating the TUN/TAP interface tuntap = win32file.CreateFile( r'\\.\Global\%s.tap' % componentId, win32file.GENERIC_READ | win32file.GENERIC_WRITE, win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_SYSTEM | win32file.FILE_FLAG_OVERLAPPED, None ) print('tuntap = {0}'.format(tuntap.handle)) # have Windows consider the interface now connected win32file.DeviceIoControl( tuntap, TAP_IOCTL_SET_MEDIA_STATUS, '\x00\x00\x00\x00', None ) # prepare the parameter passed to the TAP_IOCTL_CONFIG_TUN commmand. # This needs to be a 12-character long string representing # - the tun interface's IPv4 address (4 characters) # - the tun interface's IPv4 network address (4 characters) # - the tun interface's IPv4 network mask (4 characters) configTunParam = [] configTunParam += TUN_IPv4_ADDRESS configTunParam += TUN_IPv4_NETWORK configTunParam += TUN_IPv4_NETMASK configTunParam = ''.join([chr(b) for b in configTunParam]) # switch to TUN mode (by default the interface runs in TAP mode) win32file.DeviceIoControl( tuntap, TAP_IOCTL_CONFIG_TUN, configTunParam, None ) # return the handler of the TUN interface return tuntap #=== misc
Example #20
Source File: interface.py From XFLTReaT with MIT License | 4 votes |
def win_tun_alloc(self, dev, flags): TAP_IOCTL_SET_MEDIA_STATUS = self.WIN_TAP_CONTROL_CODE(6, 0) import pywintypes guid = self.WIN_get_device_guid() if not guid: common.internal_print("Please install OpenVPN's Windows TAP driver (NDIS 6) to use XFLTReaT\r\nhttps://openvpn.net/index.php/open-source/downloads.html", -1) sys.exit(-1) # create a win32file for manipulating the TUN/TAP interface try: self.wintun = win32file.CreateFile("\\\\.\\Global\\{0}.tap".format(guid), win32file.GENERIC_READ | win32file.GENERIC_WRITE, win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_SYSTEM | win32file.FILE_FLAG_NO_BUFFERING | win32file.FILE_FLAG_OVERLAPPED, None) except pywintypes.error as e: if e.args[0] == 31: # A device attached to the system is not functioning. common.internal_print("The TUN device is already in use. Maybe another XFLTReaT is running.", -1) sys.exit(-1) # have Windows consider the interface now connected win32file.DeviceIoControl(self.wintun, TAP_IOCTL_SET_MEDIA_STATUS, '\x01\x00\x00\x00', 1, None) return self.wintun