#pragma once #include #include #include #pragma pack(push,1) // winusb - hooks for winusb ident, read and write passed to device // usio - providor for winusb, passes along read/write // ll3io - gives usio the data to write struct winusb_dev { HANDLE fd; GUID class_guid; const wchar_t *path; //uint8_t read_pipe_id; // duno if this ever needs to change? //uint8_t write_pipe_id; struct _USB_DEVICE_DESCRIPTOR descriptor; void (*read_pipe)(void *ctx, uint8_t pipe_id, uint8_t *bfr, uint32_t bfr_len); void (*write_pipe)(void *ctx, uint8_t pipe_id, uint8_t *bfr, uint32_t bfr_len); }; #pragma pack(pop) HRESULT winusb_add_phantom_dev(const struct winusb_dev *dev); void winusb_hook_insert_hooks(HMODULE target);