[HIDCLASS]

- Handle device initialization errors
CORE-6575

svn path=/trunk/; revision=57825
This commit is contained in:
Johannes Anderwald 2012-12-08 19:17:35 +00:00
parent 752fa55287
commit 0b6cc39c0a

View file

@ -350,7 +350,13 @@ HidClassFDO_StartDevice(
// query capabilities // query capabilities
// //
Status = HidClassFDO_QueryCapabilities(DeviceObject, &FDODeviceExtension->Capabilities); Status = HidClassFDO_QueryCapabilities(DeviceObject, &FDODeviceExtension->Capabilities);
ASSERT(Status == STATUS_SUCCESS); if (!NT_SUCCESS(Status))
{
DPRINT1("[HIDCLASS] Failed to retrieve capabilities %x\n", Status);
Irp->IoStatus.Status = Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return Status;
}
// //
// lets start the lower device too // lets start the lower device too
@ -369,13 +375,25 @@ HidClassFDO_StartDevice(
// lets get the descriptors // lets get the descriptors
// //
Status = HidClassFDO_GetDescriptors(DeviceObject); Status = HidClassFDO_GetDescriptors(DeviceObject);
ASSERT(Status == STATUS_SUCCESS); if (!NT_SUCCESS(Status))
{
DPRINT1("[HIDCLASS] Failed to retrieve the descriptors %x\n", Status);
Irp->IoStatus.Status = Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return Status;
}
// //
// now get the the collection description // now get the the collection description
// //
Status = HidP_GetCollectionDescription(FDODeviceExtension->ReportDescriptor, FDODeviceExtension->HidDescriptor.DescriptorList[0].wReportLength, NonPagedPool, &FDODeviceExtension->Common.DeviceDescription); Status = HidP_GetCollectionDescription(FDODeviceExtension->ReportDescriptor, FDODeviceExtension->HidDescriptor.DescriptorList[0].wReportLength, NonPagedPool, &FDODeviceExtension->Common.DeviceDescription);
ASSERT(Status == STATUS_SUCCESS); if (!NT_SUCCESS(Status))
{
DPRINT1("[HIDCLASS] Failed to retrieve the collection description %x\n", Status);
Irp->IoStatus.Status = Status;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
return Status;
}
// //
// complete request // complete request