)]}'
{
  "commit": "9c28ad219b654011783a42ec888ca87dbda704a6",
  "tree": "b789d577d5547c0d7b247d165fe52dc96f5014c8",
  "parents": [
    "67e6816264e35a1f22b43a78b4be7481652bc51a"
  ],
  "author": {
    "name": "Chris Dickens",
    "email": "christopher.a.dickens@gmail.com",
    "time": "Fri Feb 07 15:47:55 2020 -0800"
  },
  "committer": {
    "name": "Chris Dickens",
    "email": "christopher.a.dickens@gmail.com",
    "time": "Fri Feb 07 15:47:55 2020 -0800"
  },
  "message": "Windows: Refactoring to consolidate and simplify common code\n\nBoth the UsbDk and WinUSB backends perform common steps when handling\ntransfers in order to interact with the poll abstraction, both during\nsubmission and when processing transfer completion. With some\nrearranging of shared structures, this can be yanked from the individual\nbackends and placed in the common area. This allows for several\nfunctions to be removed outright from each backend.\n\nThe cancellation logic can also be simplified by attempting CancelIoEx()\nat the highest level and delegating to the backend if there are\nalternatives to try should CancelIoEx() fail.\n\nAfter some analysis of how Windows processes asychronous (OVERLAPPED)\nrequests that the underlying driver completes synchronously, it is now\nevident that such requests need not be handled in any special fashion.\nEach function that called a driver function that was expected to\ncomplete asynchronously had logic to handle the case of a synchronous\ncompletion, so this has all been killed off. This significantly cleans\nup these call sites as now they must only check for an error condition.\n\nFinally, the initialization code for the WinUSB backend has been\nreworked to load the WinUSB DLL independent of the libusbK DLL.\nPreviously when the libusbK DLL was present, all requests to devices\nusing WinUSB would first be sent through the libusbK DLL where\nthey would then be forwarded to the WinUSB DLL. This is slightly\ninefficient but is also limiting when using Windows 8.1 or later because\nsupport for isochronous transfers through WinUSB will be lost.\n\nSigned-off-by: Chris Dickens \u003cchristopher.a.dickens@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f73524501614a8ccd07688771f09506cc4c3c356",
      "old_mode": 33188,
      "old_path": "libusb/os/poll_windows.c",
      "new_id": "490ee7f0617721006815e86840b43ec26bf54c6e",
      "new_mode": 33188,
      "new_path": "libusb/os/poll_windows.c"
    },
    {
      "type": "modify",
      "old_id": "b2c94f9997eb873e51a8a19fd76df7fa773f7e2a",
      "old_mode": 33188,
      "old_path": "libusb/os/poll_windows.h",
      "new_id": "a38e1dad9b8456f9130dab79e1f40f301d02f854",
      "new_mode": 33188,
      "new_path": "libusb/os/poll_windows.h"
    },
    {
      "type": "modify",
      "old_id": "a2c9bebaeb08b3c3686cc7726cc6c43aa13595a4",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_common.c",
      "new_id": "3a11c56f24d1811779c3621d3c386d9f60e4392d",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_common.c"
    },
    {
      "type": "modify",
      "old_id": "93ea23e16d788f0390fecca8c296ba01d93ef851",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_common.h",
      "new_id": "63d3183c704010ae9c3e5f67026b257451aabd59",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_common.h"
    },
    {
      "type": "modify",
      "old_id": "bbec3d891303f8be3bbe0f8eff5f6a97b73ba21f",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_usbdk.c",
      "new_id": "46935a6b540c538aac27d5fc865ffa95917fa935",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_usbdk.c"
    },
    {
      "type": "modify",
      "old_id": "7cb17beeffcfcffe44c12f921f45e08131e9981f",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_winusb.c",
      "new_id": "ce4d3a104bfb8f54cd4fb09593966774c55b217f",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_winusb.c"
    },
    {
      "type": "modify",
      "old_id": "6ac39c3abd0cffa53356a8d04c98044756b27b45",
      "old_mode": 33188,
      "old_path": "libusb/os/windows_winusb.h",
      "new_id": "57d4b7f2767a3a60d0c67b1243a1d5b99f33b1f5",
      "new_mode": 33188,
      "new_path": "libusb/os/windows_winusb.h"
    },
    {
      "type": "modify",
      "old_id": "7e27bf58989bfcdfd57ed96eb47e7614f36ca1e0",
      "old_mode": 33188,
      "old_path": "libusb/version_nano.h",
      "new_id": "8c3a7c49031b79a0e010a9d9571871f18104d014",
      "new_mode": 33188,
      "new_path": "libusb/version_nano.h"
    }
  ]
}
