Python win32file.FILE_FLAG_OVERLAPPED Examples
The following are 6
code examples of win32file.FILE_FLAG_OVERLAPPED().
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 | 6 votes |
def setUp(self): self.watcher_threads = [] self.watcher_thread_changes = [] self.dir_names = [] self.dir_handles = [] for i in range(self.num_test_dirs): td = tempfile.mktemp("-test-directory-changes-%d" % i) os.mkdir(td) self.dir_names.append(td) hdir = win32file.CreateFile(td, ntsecuritycon.FILE_LIST_DIRECTORY, win32con.FILE_SHARE_READ, None, # security desc win32con.OPEN_EXISTING, win32con.FILE_FLAG_BACKUP_SEMANTICS | win32con.FILE_FLAG_OVERLAPPED, None) self.dir_handles.append(hdir) changes = [] t = threading.Thread(target=self._watcherThreadOverlapped, args=(td, hdir, changes)) t.start() self.watcher_threads.append(t) self.watcher_thread_changes.append(changes)
Example #2
Source File: test_win32file.py From ironpython2 with Apache License 2.0 | 5 votes |
def testCompletionPortsNonQueued(self, test_overlapped_death = 0): # In 204 we had a reference count bug when OVERLAPPED objects were # associated with a completion port other than via # PostQueuedCompletionStatus. This test is based on the reproduction # reported with that bug. # Create the pipe. BUFSIZE = 512 pipe_name = r"\\.\pipe\pywin32_test_pipe" handle = win32pipe.CreateNamedPipe(pipe_name, win32pipe.PIPE_ACCESS_DUPLEX| win32file.FILE_FLAG_OVERLAPPED, win32pipe.PIPE_TYPE_MESSAGE| win32pipe.PIPE_READMODE_MESSAGE| win32pipe.PIPE_WAIT, 1, BUFSIZE, BUFSIZE, win32pipe.NMPWAIT_WAIT_FOREVER, None) # Create an IOCP and associate it with the handle. port = win32file.CreateIoCompletionPort(-1, 0, 0, 0) win32file.CreateIoCompletionPort(handle, port, 1, 0) t = threading.Thread(target=self._IOCPServerThread, args=(handle,port, test_overlapped_death)) t.setDaemon(True) # avoid hanging entire test suite on failure. t.start() try: time.sleep(0.1) # let thread do its thing. try: win32pipe.CallNamedPipe(r"\\.\pipe\pywin32_test_pipe", str2bytes("Hello there"), BUFSIZE, 0) except win32pipe.error: # Testing for overlapped death causes this if not test_overlapped_death: raise finally: if not test_overlapped_death: handle.Close() t.join(3) self.failIf(t.isAlive(), "thread didn't finish")
Example #3
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 #4
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
Example #5
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 #6
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