I am looking for a migration from pcan_usb.dll to the recommended signed and supported replacement.
the current API that you need to use is called PCAN-Basic. It is the successor of PCAN-Light and it supports CAN 2.0A/B and CAN with flexible data-rate (CAN-FD).
The way how it works is very similar to PCAN-Light; you need to initialize a PCAN channel before using it (CAN_Initialize, CAN_InitializeFD), then you have functions to read (CAN_Read, CAN_ReadFD) and write (CAN_Write, CAN_WriteFD), to adjust the filter (CAN_FilterMessages), to configure several parameters like Listen-Only (CAN_GetValue/CAN_SetValue), and to close a channel (CAN_Uninitialize).
The PCAN-Basic API is fee-free, it is accompanied by several sample projects in different programming languages (C#, VB.Net, C++/CLI, C++MFC, C+++ Builder, Delphi, Python) that show the use of all functions mentioned before. Added to this you get a CHM help file for the API, and a PDF documentation for about 40 parameters, that are currently supported by the CAN_GetValue/CAN_SetValue functions.
Also under this forum, PCAN-Basic, you will find many answer to problems that may arise while porting your code.
By the way, the PCAN-Basic API has also a Linux version. Applications written in Python, for instance, can work in both operating systems.