+static void disable_device(void) {
+ logger(DEBUG_ALWAYS, LOG_INFO, "Disabling %s", device_info);
+ ULONG status = 0;
+ DWORD len;
+ DeviceIoControl(device_handle, TAP_IOCTL_SET_MEDIA_STATUS, &status, sizeof status, &status, sizeof status, &len, NULL);
+}
+
+static void close_device(void) {
+ io_del(&device_read_io);
+ CancelIo(device_handle);
+ CloseHandle(device_read_overlapped.hEvent);
+ CloseHandle(device_handle); device_handle = INVALID_HANDLE_VALUE;
+
+ free(device); device = NULL;
+ free(iface); iface = NULL;
+ device_info = NULL;