On 2015-06-22 03:25, Aric Stewart wrote:
diff --git a/dlls/hidclass.sys/pnp.c b/dlls/hidclass.sys/pnp.c new file mode 100644 index 0000000..4e51e1a --- /dev/null +++ b/dlls/hidclass.sys/pnp.c
+typedef NTSTATUS (*pAddDevice)(DRIVER_OBJECT *DriverObject, DEVICE_OBJECT *PhysicalDeviceObject);
+HRESULT PNP_AddDevice(DRIVER_OBJECT *driver, LPVOID native) +{ + DEVICE_OBJECT *device = NULL; + NTSTATUS status; + HID_MINIDRIVER_REGISTRATION *minidriver; + HID_DEVICE_ATTRIBUTES attr; + BASE_DEVICE_EXTENSION *ext = NULL; + DWORD size; + WCHAR serial[256] = {0}; + WCHAR interface[256] = {0}; + DWORD index = HID_STRING_ID_ISERIALNUMBER; + NATIVE_DEVICE *tracked_device, *ptr; + INT interface_index = 1; + INT i; + + static const WCHAR ig_fmtW[] = {'I','G','_','%','i',0}; + static const WCHAR im_fmtW[] = {'I','M','_','%','i',0}; + + + TRACE("native add device(%p)\n", native); + minidriver = find_minidriver(driver); + + status = HID_CreateDevice(native, minidriver, &device); + if (status != STATUS_SUCCESS) + { + ERR("Failed to create HID object (%x)\n",status); + return status; + } + + TRACE("Created device %p\n",device); + status = ((pAddDevice)minidriver->DriverObject->DriverExtension->AddDevice)(minidriver->DriverObject, device);
AddDevice is and has always been NTAPI/WINAPI/__stdcall, this cast should not be needed.
[...] +}