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.
[...] +}