Author: tfaber
Date: Tue May 1 16:53:02 2012
New Revision: 56469
URL:
http://svn.reactos.org/svn/reactos?rev=56469&view=rev
Log:
[FBTUSB]
- Shut up warnings
- Fix whitespace issues
Modified:
trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c
trunk/reactos/drivers/bluetooth/fbtusb/fbtpnp.c
trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c
trunk/reactos/drivers/bluetooth/fbtusb/fbtrwr.c
trunk/reactos/drivers/bluetooth/fbtusb/fbtusb.c
Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
==============================================================================
--- trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bluetooth/fbtusb/fbtdev.c [iso-8859-1] Tue May 1 16:53:02 2012
@@ -22,13 +22,13 @@
// Dispatch routine for CreateHandle
NTSTATUS FreeBT_DispatchCreate(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
- ULONG i;
+ //ULONG i;
NTSTATUS ntStatus;
PFILE_OBJECT fileObject;
PDEVICE_EXTENSION deviceExtension;
PIO_STACK_LOCATION irpStack;
- PFREEBT_PIPE_CONTEXT pipeContext;
- PUSBD_INTERFACE_INFORMATION interface;
+ //PFREEBT_PIPE_CONTEXT pipeContext;
+ PUSBD_INTERFACE_INFORMATION interface;
PAGED_CODE();
@@ -71,12 +71,12 @@
}
- if (deviceExtension->OpenHandleCount>0)
- {
- ntStatus = STATUS_ACCESS_VIOLATION;
- goto FreeBT_DispatchCreate_Exit;
-
- }
+ if (deviceExtension->OpenHandleCount>0)
+ {
+ ntStatus = STATUS_ACCESS_VIOLATION;
+ goto FreeBT_DispatchCreate_Exit;
+
+ }
// opening a device as opposed to pipe.
ntStatus = STATUS_SUCCESS;
@@ -105,15 +105,15 @@
PFILE_OBJECT fileObject;
PDEVICE_EXTENSION deviceExtension;
PIO_STACK_LOCATION irpStack;
- PFREEBT_PIPE_CONTEXT pipeContext;
- PUSBD_PIPE_INFORMATION pipeInformation;
+ //PFREEBT_PIPE_CONTEXT pipeContext;
+ //PUSBD_PIPE_INFORMATION pipeInformation;
PAGED_CODE();
irpStack = IoGetCurrentIrpStackLocation(Irp);
fileObject = irpStack->FileObject;
- pipeContext = NULL;
- pipeInformation = NULL;
+ //pipeContext = NULL;
+ //pipeInformation = NULL;
deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
FreeBT_DbgPrint(3, ("FreeBT_DispatchClose: Entered\n"));
@@ -134,16 +134,16 @@
// Called when a HCI Send on the control pipe completes
NTSTATUS FreeBT_HCISendCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID
Context)
{
- ULONG stageLength;
+ //ULONG stageLength;
NTSTATUS ntStatus;
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_HCISendCompletion, status=0x%08X\n",
Irp->IoStatus.Status));
- if (Irp->PendingReturned)
- IoMarkIrpPending(Irp);
+ if (Irp->PendingReturned)
+ IoMarkIrpPending(Irp);
ExFreePool(Context);
- FreeBT_IoDecrement(DeviceObject->DeviceExtension);
+ FreeBT_IoDecrement(DeviceObject->DeviceExtension);
ntStatus = Irp->IoStatus.Status;
Irp->IoStatus.Information = 0;
@@ -155,79 +155,79 @@
// HCI Commands are sent on the (default) control pipe
NTSTATUS FreeBT_SendHCICommand(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID
IoBuffer, IN ULONG InputBufferLength)
{
- PDEVICE_EXTENSION deviceExtension;
- ULONG urbFlags;
- ULONG stageLength;
- PVOID pBuffer;
- PURB urb;
- NTSTATUS ntStatus;
- PIO_STACK_LOCATION nextStack;
- //PFBT_HCI_CMD_HEADER pHCICommand;
- //LARGE_INTEGER delay;
-
- deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
- if (!deviceExtension)
- {
- ntStatus=STATUS_INVALID_PARAMETER;
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Failed to get
DeviceExtension\n"));
- Irp->IoStatus.Status = ntStatus;
- Irp->IoStatus.Information = 0;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
- return ntStatus;
-
- }
-
- // The user is doing a reset, reset all the pipes as well, so that any
- // old events or data are removed
- /*pHCICommand=(PFBT_HCI_CMD_HEADER)IoBuffer;
- if (pHCICommand->OpCode==FBT_HCI_CMD_RESET)
- {
- FreeBT_ResetPipe(DeviceObject, deviceExtension->EventPipe.PipeHandle);
- FreeBT_ResetPipe(DeviceObject, deviceExtension->DataInPipe.PipeHandle);
- FreeBT_ResetPipe(DeviceObject, deviceExtension->DataOutPipe.PipeHandle);
- FreeBT_ResetPipe(DeviceObject, deviceExtension->AudioInPipe.PipeHandle);
- FreeBT_ResetPipe(DeviceObject, deviceExtension->AudioOutPipe.PipeHandle);
-
- // Wait a second for the device to recover
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Sleeping\n"));
- delay.QuadPart = -10000 * 5000; // 5s
+ PDEVICE_EXTENSION deviceExtension;
+ //ULONG urbFlags;
+ //ULONG stageLength;
+ //PVOID pBuffer;
+ PURB urb;
+ NTSTATUS ntStatus;
+ PIO_STACK_LOCATION nextStack;
+ //PFBT_HCI_CMD_HEADER pHCICommand;
+ //LARGE_INTEGER delay;
+
+ deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
+ if (!deviceExtension)
+ {
+ ntStatus=STATUS_INVALID_PARAMETER;
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Failed to get
DeviceExtension\n"));
+ Irp->IoStatus.Status = ntStatus;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ return ntStatus;
+
+ }
+
+ // The user is doing a reset, reset all the pipes as well, so that any
+ // old events or data are removed
+ /*pHCICommand=(PFBT_HCI_CMD_HEADER)IoBuffer;
+ if (pHCICommand->OpCode==FBT_HCI_CMD_RESET)
+ {
+ FreeBT_ResetPipe(DeviceObject, deviceExtension->EventPipe.PipeHandle);
+ FreeBT_ResetPipe(DeviceObject, deviceExtension->DataInPipe.PipeHandle);
+ FreeBT_ResetPipe(DeviceObject, deviceExtension->DataOutPipe.PipeHandle);
+ FreeBT_ResetPipe(DeviceObject, deviceExtension->AudioInPipe.PipeHandle);
+ FreeBT_ResetPipe(DeviceObject, deviceExtension->AudioOutPipe.PipeHandle);
+
+ // Wait a second for the device to recover
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Sleeping\n"));
+ delay.QuadPart = -10000 * 5000; // 5s
KeWaitForSingleObject(&deviceExtension->DelayEvent,
Executive,
UserMode,
FALSE,
&delay);
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Finished sleeping\n"));
-
-
- }*/
-
- // Create the URB
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Finished
sleeping\n"));
+
+
+ }*/
+
+ // Create the URB
urb = (PURB)ExAllocatePool(NonPagedPool, sizeof(struct
_URB_CONTROL_VENDOR_OR_CLASS_REQUEST));
if(urb == NULL)
{
FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_SendHCICommand: Failed to alloc mem for
urb\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
- Irp->IoStatus.Status = ntStatus;
- Irp->IoStatus.Information = 0;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
- return ntStatus;
-
- }
-
- UsbBuildVendorRequest(
- urb,
- URB_FUNCTION_CLASS_DEVICE, // This works, for CSR and Silicon Wave
- sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST),
- 0,
- 0,
- 0,
- 0,
- 0,
- IoBuffer,
- NULL,
- InputBufferLength,
- NULL);
+ Irp->IoStatus.Status = ntStatus;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+ return ntStatus;
+
+ }
+
+ UsbBuildVendorRequest(
+ urb,
+ URB_FUNCTION_CLASS_DEVICE, // This works, for CSR and Silicon Wave
+ sizeof(struct _URB_CONTROL_VENDOR_OR_CLASS_REQUEST),
+ 0,
+ 0,
+ 0,
+ 0,
+ 0,
+ IoBuffer,
+ NULL,
+ InputBufferLength,
+ NULL);
// use the original irp as an internal device control irp
nextStack = IoGetNextIrpStackLocation(Irp);
@@ -236,41 +236,41 @@
nextStack->Parameters.DeviceIoControl.IoControlCode =
IOCTL_INTERNAL_USB_SUBMIT_URB;
IoSetCompletionRoutine(
- Irp,
- (PIO_COMPLETION_ROUTINE)FreeBT_HCISendCompletion,
- urb,
- TRUE,
- TRUE,
- TRUE);
+ Irp,
+ (PIO_COMPLETION_ROUTINE)FreeBT_HCISendCompletion,
+ urb,
+ TRUE,
+ TRUE,
+ TRUE);
// We return STATUS_PENDING; call IoMarkIrpPending.
IoMarkIrpPending(Irp);
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand::"));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand::"));
FreeBT_IoIncrement(deviceExtension);
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand: Sending IRP %X to underlying
driver\n", Irp));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand: Sending IRP %X to underlying
driver\n", Irp));
ntStatus=IoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(!NT_SUCCESS(ntStatus))
{
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand: IoCallDriver fails with
status %X\n", ntStatus));
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand::"));
- FreeBT_IoDecrement(deviceExtension);
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand::"));
+ FreeBT_IoDecrement(deviceExtension);
// If the device was surprise removed out, the pipeInformation field is invalid.
// similarly if the request was cancelled, then we need not reset the device.
if((ntStatus != STATUS_CANCELLED) && (ntStatus !=
STATUS_DEVICE_NOT_CONNECTED))
- ntStatus = FreeBT_ResetDevice(DeviceObject);
+ ntStatus = FreeBT_ResetDevice(DeviceObject);
else
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_SendHCICommand: ntStatus is
STATUS_CANCELLED or STATUS_DEVICE_NOT_CONNECTED\n"));
- Irp->IoStatus.Status = ntStatus;
- Irp->IoStatus.Information = 0;
- IoCompleteRequest(Irp, IO_NO_INCREMENT);
-
- return ntStatus;
+ Irp->IoStatus.Status = ntStatus;
+ Irp->IoStatus.Information = 0;
+ IoCompleteRequest(Irp, IO_NO_INCREMENT);
+
+ return ntStatus;
}
@@ -283,24 +283,24 @@
// Called when a HCI Get on the event pipe completes
NTSTATUS FreeBT_HCIEventCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID
Context)
{
- ULONG stageLength;
+ //ULONG stageLength;
NTSTATUS ntStatus;
PIO_STACK_LOCATION nextStack;
- PURB urb;
+ PURB urb;
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_HCIEventCompletion, status=0x%08X\n",
Irp->IoStatus.Status));
- if (Irp->PendingReturned)
- IoMarkIrpPending(Irp);
+ if (Irp->PendingReturned)
+ IoMarkIrpPending(Irp);
// initialize variables
- urb=(PURB)Context;
+ urb=(PURB)Context;
ntStatus = Irp->IoStatus.Status;
Irp->IoStatus.Information =
urb->UrbBulkOrInterruptTransfer.TransferBufferLength;
nextStack = IoGetNextIrpStackLocation(Irp);
ExFreePool(Context);
- FreeBT_IoDecrement(DeviceObject->DeviceExtension);
+ FreeBT_IoDecrement(DeviceObject->DeviceExtension);
return ntStatus;
@@ -309,10 +309,10 @@
// Called from the DeviceIOControl handler to wait for an event on the interrupt pipe
NTSTATUS FreeBT_GetHCIEvent(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID
IoBuffer, IN ULONG InputBufferLength)
{
- PDEVICE_EXTENSION deviceExtension;
- PURB urb;
- NTSTATUS ntStatus;
- PIO_STACK_LOCATION nextStack;
+ PDEVICE_EXTENSION deviceExtension;
+ PURB urb;
+ NTSTATUS ntStatus;
+ PIO_STACK_LOCATION nextStack;
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetHCIEvent: Entered\n"));
@@ -346,17 +346,17 @@
nextStack->Parameters.DeviceIoControl.IoControlCode =
IOCTL_INTERNAL_USB_SUBMIT_URB;
IoSetCompletionRoutine(
- Irp,
- (PIO_COMPLETION_ROUTINE)FreeBT_HCIEventCompletion,
- urb,
- TRUE,
- TRUE,
- TRUE);
+ Irp,
+ (PIO_COMPLETION_ROUTINE)FreeBT_HCIEventCompletion,
+ urb,
+ TRUE,
+ TRUE,
+ TRUE);
// We return STATUS_PENDING; call IoMarkIrpPending.
IoMarkIrpPending(Irp);
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetHCIEvent::"));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetHCIEvent::"));
FreeBT_IoIncrement(deviceExtension);
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
@@ -364,8 +364,8 @@
{
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetHCIEvent: IoCallDriver fails with
status %X\n", ntStatus));
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetHCIEvent::"));
- FreeBT_IoDecrement(deviceExtension);
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetHCIEvent::"));
+ FreeBT_IoDecrement(deviceExtension);
// If the device was surprise removed out, the pipeInformation field is invalid.
// similarly if the request was cancelled, then we need not reset the pipe.
@@ -432,17 +432,17 @@
if (deviceExtension->DeviceState != Working)
{
FreeBT_DbgPrint(1, ("FBTUSB: Invalid device state\n"));
- ntStatus = STATUS_INVALID_DEVICE_STATE;
- goto FreeBT_DispatchDevCtrlExit;
-
- }
+ ntStatus = STATUS_INVALID_DEVICE_STATE;
+ goto FreeBT_DispatchDevCtrlExit;
+
+ }
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchDevCtrl::"));
// Make sure that any selective suspend request has been completed.
if (deviceExtension->SSEnable)
{
- FreeBT_DbgPrint(3, ("Waiting on the IdleReqPendEvent\n"));
+ FreeBT_DbgPrint(3, ("Waiting on the IdleReqPendEvent\n"));
KeWaitForSingleObject(&deviceExtension->NoIdleReqPendEvent,
Executive,
KernelMode,
@@ -453,49 +453,49 @@
switch(code)
{
- case IOCTL_FREEBT_HCI_SEND_CMD:
- FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_SEND_CMD received\n"));
- if (inputBufferLength<FBT_HCI_CMD_MIN_SIZE)
- {
- ntStatus = STATUS_BUFFER_TOO_SMALL;
- FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_SEND_CMD: Buffer too
small\n"));
- goto FreeBT_DispatchDevCtrlExit;
-
- }
-
- if (inputBufferLength>FBT_HCI_CMD_MAX_SIZE)
- {
- ntStatus = STATUS_INVALID_BUFFER_SIZE;
- FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_SEND_CMD: Buffer too
long\n"));
- goto FreeBT_DispatchDevCtrlExit;
-
- }
-
- return FreeBT_SendHCICommand(DeviceObject, Irp, ioBuffer, inputBufferLength);
- break;
-
- case IOCTL_FREEBT_HCI_GET_EVENT:
- FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_GET_EVENT received\n"));
- if (outputBufferLength<FBT_HCI_EVENT_MAX_SIZE)
- {
- ntStatus = STATUS_BUFFER_TOO_SMALL;
- FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_GET_EVENT: Buffer too
small\n"));
- goto FreeBT_DispatchDevCtrlExit;
-
- }
-
- return FreeBT_GetHCIEvent(DeviceObject, Irp, ioBuffer, outputBufferLength);
- break;
+ case IOCTL_FREEBT_HCI_SEND_CMD:
+ FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_SEND_CMD received\n"));
+ if (inputBufferLength<FBT_HCI_CMD_MIN_SIZE)
+ {
+ ntStatus = STATUS_BUFFER_TOO_SMALL;
+ FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_SEND_CMD: Buffer too
small\n"));
+ goto FreeBT_DispatchDevCtrlExit;
+
+ }
+
+ if (inputBufferLength>FBT_HCI_CMD_MAX_SIZE)
+ {
+ ntStatus = STATUS_INVALID_BUFFER_SIZE;
+ FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_SEND_CMD: Buffer too
long\n"));
+ goto FreeBT_DispatchDevCtrlExit;
+
+ }
+
+ return FreeBT_SendHCICommand(DeviceObject, Irp, ioBuffer, inputBufferLength);
+ break;
+
+ case IOCTL_FREEBT_HCI_GET_EVENT:
+ FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_GET_EVENT received\n"));
+ if (outputBufferLength<FBT_HCI_EVENT_MAX_SIZE)
+ {
+ ntStatus = STATUS_BUFFER_TOO_SMALL;
+ FreeBT_DbgPrint(3, ("FBTUSB: IOCTL_FREEBT_HCI_GET_EVENT: Buffer too
small\n"));
+ goto FreeBT_DispatchDevCtrlExit;
+
+ }
+
+ return FreeBT_GetHCIEvent(DeviceObject, Irp, ioBuffer, outputBufferLength);
+ break;
default:
- FreeBT_DbgPrint(3, ("FBTUSB: Invalid IOCTL 0x%08x received\n", code));
+ FreeBT_DbgPrint(3, ("FBTUSB: Invalid IOCTL 0x%08x received\n", code));
ntStatus = STATUS_INVALID_DEVICE_REQUEST;
break;
}
FreeBT_DispatchDevCtrlExit:
- Irp->IoStatus.Information = 0;
+ Irp->IoStatus.Information = 0;
Irp->IoStatus.Status = ntStatus;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
@@ -1125,13 +1125,13 @@
{
FreeBT_DbgPrint(3, ("IoCancelIrp returns TRUE\n"));
- }
+ }
else
{
FreeBT_DbgPrint(3, ("IoCancelIrp returns FALSE\n"));
- }
+ }
// ....we decrement the FreeIdleIrpCount from 2 to 1.
// if completion routine runs ahead of us, then this routine
@@ -1167,7 +1167,7 @@
if(irpContext)
{
KeSetEvent(irpContext->Event, 0, FALSE);
- FreeBT_IoDecrement(irpContext->DeviceExtension);
+ FreeBT_IoDecrement(irpContext->DeviceExtension);
ExFreePool(irpContext);
}
Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtpnp.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
==============================================================================
--- trunk/reactos/drivers/bluetooth/fbtusb/fbtpnp.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bluetooth/fbtusb/fbtpnp.c [iso-8859-1] Tue May 1 16:53:02 2012
@@ -25,7 +25,7 @@
{
PIO_STACK_LOCATION irpStack;
PDEVICE_EXTENSION deviceExtension;
- KEVENT startDeviceEvent;
+ //KEVENT startDeviceEvent;
NTSTATUS ntStatus;
irpStack = IoGetCurrentIrpStackLocation(Irp);
@@ -33,7 +33,7 @@
// since the device is removed, fail the Irp.
if (Removed == deviceExtension->DeviceState)
- {
+ {
ntStatus = STATUS_DELETE_PENDING;
Irp->IoStatus.Status = ntStatus;
Irp->IoStatus.Information = 0;
@@ -45,15 +45,15 @@
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchPnP::"));
FreeBT_IoIncrement(deviceExtension);
if (irpStack->MinorFunction == IRP_MN_START_DEVICE)
- {
+ {
ASSERT(deviceExtension->IdleReqPend == 0);
}
else
- {
+ {
if (deviceExtension->SSEnable)
- {
+ {
CancelSelectSuspend(deviceExtension);
}
@@ -64,7 +64,7 @@
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchPnP::"));
FreeBT_DbgPrint(2, (PnPMinorFunctionString(irpStack->MinorFunction)));
switch (irpStack->MinorFunction)
- {
+ {
case IRP_MN_START_DEVICE:
ntStatus = HandleStartDevice(DeviceObject, Irp);
break;
@@ -73,7 +73,7 @@
// if we cannot stop the device, we fail the query stop irp
ntStatus = CanStopDevice(DeviceObject, Irp);
if(NT_SUCCESS(ntStatus))
- {
+ {
ntStatus = HandleQueryStopDevice(DeviceObject, Irp);
return ntStatus;
@@ -168,14 +168,14 @@
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if (ntStatus == STATUS_PENDING)
- {
+ {
KeWaitForSingleObject(&startDeviceEvent, Executive, KernelMode, FALSE,
NULL);
ntStatus = Irp->IoStatus.Status;
}
if (!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleStartDevice: Lower drivers failed this
Irp (0x%08x)\n", ntStatus));
return ntStatus;
@@ -185,7 +185,7 @@
// and select the interface descriptors
ntStatus = ReadandSelectDescriptors(DeviceObject);
if (!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleStartDevice: ReadandSelectDescriptors
failed (0x%08x)\n", ntStatus));
return ntStatus;
@@ -195,7 +195,7 @@
// handles to the device
ntStatus = IoSetDeviceInterfaceState(&deviceExtension->InterfaceName, TRUE);
if (!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleStartDevice: IoSetDeviceInterfaceState
failed (0x%08x)\n", ntStatus));
return ntStatus;
@@ -213,19 +213,19 @@
deviceExtension->WaitWakeIrp = NULL;
if (deviceExtension->WaitWakeEnable)
- {
+ {
IssueWaitWake(deviceExtension);
}
ProcessQueuedRequests(deviceExtension);
if (WinXpOrBetter == deviceExtension->WdmVersion)
- {
+ {
deviceExtension->SSEnable = deviceExtension->SSRegistryEnable;
// set timer.for selective suspend requests
if (deviceExtension->SSEnable)
- {
+ {
dueTime.QuadPart = -10000 * IDLE_INTERVAL; // 5000 ms
KeSetTimerEx(&deviceExtension->Timer, dueTime, IDLE_INTERVAL,
&deviceExtension->DeferredProcCall);
deviceExtension->FreeIdleIrpCount = 0;
@@ -254,11 +254,11 @@
// 1. Read the device descriptor
urb = (PURB) ExAllocatePool(NonPagedPool, sizeof(struct
_URB_CONTROL_DESCRIPTOR_REQUEST));
if(urb)
- {
+ {
siz = sizeof(USB_DEVICE_DESCRIPTOR);
deviceDescriptor = (PUSB_DEVICE_DESCRIPTOR) ExAllocatePool(NonPagedPool, siz);
if (deviceDescriptor)
- {
+ {
UsbBuildGetDescriptorRequest(
urb,
(USHORT) sizeof(struct _URB_CONTROL_DESCRIPTOR_REQUEST),
@@ -272,7 +272,7 @@
ntStatus = CallUSBD(DeviceObject, urb);
if (NT_SUCCESS(ntStatus))
- {
+ {
ASSERT(deviceDescriptor->bNumConfigurations);
ntStatus = ConfigureDevice(DeviceObject);
@@ -284,7 +284,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: ReadandSelectDescriptors: Failed to
allocate memory for deviceDescriptor"));
ExFreePool(urb);
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
@@ -294,7 +294,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: ReadandSelectDescriptors: Failed to allocate
memory for urb"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
@@ -323,12 +323,12 @@
// 2. Read the CD with all embedded interface and endpoint descriptors
urb = (PURB) ExAllocatePool(NonPagedPool, sizeof(struct
_URB_CONTROL_DESCRIPTOR_REQUEST));
if (urb)
- {
+ {
siz = sizeof(USB_CONFIGURATION_DESCRIPTOR);
configurationDescriptor = (PUSB_CONFIGURATION_DESCRIPTOR)
ExAllocatePool(NonPagedPool, siz);
if(configurationDescriptor)
- {
+ {
UsbBuildGetDescriptorRequest(
urb,
(USHORT) sizeof(struct _URB_CONTROL_DESCRIPTOR_REQUEST),
@@ -342,7 +342,7 @@
ntStatus = CallUSBD(DeviceObject, urb);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: ConfigureDevice:
UsbBuildGetDescriptorRequest failed\n"));
goto ConfigureDevice_Exit;
@@ -351,7 +351,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: ConfigureDevice: Failed to allocate mem for
config Descriptor\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
goto ConfigureDevice_Exit;
@@ -363,7 +363,7 @@
configurationDescriptor = (PUSB_CONFIGURATION_DESCRIPTOR)
ExAllocatePool(NonPagedPool, siz);
if (configurationDescriptor)
- {
+ {
UsbBuildGetDescriptorRequest(
urb,
(USHORT)sizeof(struct _URB_CONTROL_DESCRIPTOR_REQUEST),
@@ -377,7 +377,7 @@
ntStatus = CallUSBD(DeviceObject, urb);
if (!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1,("FBTUSB: ConfigureDevice: Failed to read
configuration descriptor"));
goto ConfigureDevice_Exit;
@@ -386,7 +386,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: ConfigureDevice: Failed to alloc mem for
config Descriptor\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
goto ConfigureDevice_Exit;
@@ -396,7 +396,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: ConfigureDevice: Failed to allocate memory for
urb\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
goto ConfigureDevice_Exit;
@@ -404,7 +404,7 @@
}
if (configurationDescriptor)
- {
+ {
// save a copy of configurationDescriptor in deviceExtension
// remember to free it later.
deviceExtension->UsbConfigurationDescriptor = configurationDescriptor;
@@ -427,14 +427,14 @@
}
else
- {
+ {
deviceExtension->UsbConfigurationDescriptor = NULL;
}
ConfigureDevice_Exit:
if (urb)
- {
+ {
ExFreePool(urb);
}
@@ -448,7 +448,7 @@
LONG numberOfInterfaces, interfaceNumber, interfaceindex;
ULONG i;
PURB urb;
- PUCHAR pInf;
+ //PUCHAR pInf;
NTSTATUS ntStatus;
PDEVICE_EXTENSION deviceExtension;
PUSB_INTERFACE_DESCRIPTOR interfaceDescriptor;
@@ -465,10 +465,10 @@
// Parse the configuration descriptor for the interface;
tmp = interfaceList = (PUSBD_INTERFACE_LIST_ENTRY)
- ExAllocatePool(NonPagedPool, sizeof(USBD_INTERFACE_LIST_ENTRY) * (numberOfInterfaces +
1));
+ ExAllocatePool(NonPagedPool, sizeof(USBD_INTERFACE_LIST_ENTRY) *
(numberOfInterfaces + 1));
if (!tmp)
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: SelectInterfaces: Failed to allocate mem for
interfaceList\n"));
return STATUS_INSUFFICIENT_RESOURCES;
@@ -476,11 +476,11 @@
}
- FreeBT_DbgPrint(3, ("FBTUSB: -------------\n"));
- FreeBT_DbgPrint(3, ("FBTUSB: Number of interfaces %d\n",
numberOfInterfaces));
+ FreeBT_DbgPrint(3, ("FBTUSB: -------------\n"));
+ FreeBT_DbgPrint(3, ("FBTUSB: Number of interfaces %d\n",
numberOfInterfaces));
while (interfaceNumber < numberOfInterfaces)
- {
+ {
interfaceDescriptor = USBD_ParseConfigurationDescriptorEx(
ConfigurationDescriptor,
ConfigurationDescriptor,
@@ -488,7 +488,7 @@
0, -1, -1, -1);
if (interfaceDescriptor)
- {
+ {
interfaceList->InterfaceDescriptor = interfaceDescriptor;
interfaceList->Interface = NULL;
interfaceList++;
@@ -505,10 +505,10 @@
urb = USBD_CreateConfigurationRequestEx(ConfigurationDescriptor, tmp);
if (urb)
- {
+ {
Interface = &urb->UrbSelectConfiguration.Interface;
for (i=0; i<Interface->NumberOfPipes; i++)
- {
+ {
// perform pipe initialization here
// set the transfer size and any pipe flags we use
// USBD sets the rest of the Interface struct members
@@ -518,17 +518,17 @@
ntStatus = CallUSBD(DeviceObject, urb);
if (NT_SUCCESS(ntStatus))
- {
+ {
// save a copy of interface information in the device extension.
deviceExtension->UsbInterface = (PUSBD_INTERFACE_INFORMATION)
ExAllocatePool(NonPagedPool, Interface->Length);
if (deviceExtension->UsbInterface)
- {
+ {
RtlCopyMemory(deviceExtension->UsbInterface, Interface,
Interface->Length);
}
else
- {
+ {
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
FreeBT_DbgPrint(1, ("FBTUSB: SelectInterfaces: Memory alloc for
UsbInterface failed\n"));
@@ -547,18 +547,18 @@
Interface->SubClass,
Interface->Protocol));
- if (Interface->Class==FREEBT_USB_STDCLASS &&
Interface->SubClass==FREEBT_USB_STDSUBCLASS &&
- Interface->Protocol==FREEBT_USB_STDPROTOCOL)
- {
- FreeBT_DbgPrint(3, ("FBTUSB: This is a standard USB Bluetooth device\n"));
-
- }
-
- else
- {
- FreeBT_DbgPrint(3, ("FBTUSB: WARNING: This device does not report itself as a
standard USB Bluetooth device\n"));
-
- }
+ if (Interface->Class==FREEBT_USB_STDCLASS &&
Interface->SubClass==FREEBT_USB_STDSUBCLASS &&
+ Interface->Protocol==FREEBT_USB_STDPROTOCOL)
+ {
+ FreeBT_DbgPrint(3, ("FBTUSB: This is a standard USB Bluetooth
device\n"));
+
+ }
+
+ else
+ {
+ FreeBT_DbgPrint(3, ("FBTUSB: WARNING: This device does not report
itself as a standard USB Bluetooth device\n"));
+
+ }
// Initialize the PipeContext
// Dump the pipe info
@@ -568,74 +568,74 @@
sizeof(FREEBT_PIPE_CONTEXT));
if (!deviceExtension->PipeContext)
- {
+ {
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
FreeBT_DbgPrint(1, ("FBTUSB: Memory alloc for UsbInterface
failed\n"));
}
else
- {
- FreeBT_DbgPrint(3, ("FBTUSB: SelectInterfaces: Allocated PipeContext %p\n",
deviceExtension->PipeContext));
- for (i=0; i<Interface->NumberOfPipes; i++)
- {
- deviceExtension->PipeContext[i].PipeOpen = FALSE;
-
- FreeBT_DbgPrint(3, ("FBTUSB: ---------\n"));
- FreeBT_DbgPrint(3, ("FBTUSB: PipeType 0x%x\n",
Interface->Pipes[i].PipeType));
- FreeBT_DbgPrint(3, ("FBTUSB: EndpointAddress 0x%x\n",
Interface->Pipes[i].EndpointAddress));
- FreeBT_DbgPrint(3, ("FBTUSB: MaxPacketSize 0x%x\n",
Interface->Pipes[i].MaximumPacketSize));
- FreeBT_DbgPrint(3, ("FBTUSB: Interval 0x%x\n",
Interface->Pipes[i].Interval));
- FreeBT_DbgPrint(3, ("FBTUSB: Handle 0x%x\n",
Interface->Pipes[i].PipeHandle));
- FreeBT_DbgPrint(3, ("FBTUSB: MaximumTransferSize 0x%x\n",
Interface->Pipes[i].MaximumTransferSize));
-
- // Log the pipes
- // Note the HCI Command endpoint won't appear here, because the Default Control
Pipe
- // is used for this. The Default Control Pipe is always present at EndPointAddress
0x0
- switch (Interface->Pipes[i].EndpointAddress)
- {
- case FREEBT_STDENDPOINT_HCIEVENT:
- deviceExtension->PipeContext[i].PipeType=HciEventPipe;
- deviceExtension->EventPipe=Interface->Pipes[i];
- FreeBT_DbgPrint(3, ("FBTUSB: HCI Event Endpoint\n"));
- break;
-
- case FREEBT_STDENDPOINT_ACLIN:
- deviceExtension->PipeContext[i].PipeType=AclDataIn;
- deviceExtension->DataInPipe=Interface->Pipes[i];
- FreeBT_DbgPrint(3, ("FBTUSB: ACL Data In Endpoint\n"));
- break;
-
- case FREEBT_STDENDPOINT_ACLOUT:
- deviceExtension->PipeContext[i].PipeType=AclDataOut;
- deviceExtension->DataOutPipe=Interface->Pipes[i];
- FreeBT_DbgPrint(3, ("FBTUSB: ACL Data Out Endpoint\n"));
- break;
-
- case FREEBT_STDENDPOINT_AUDIOIN:
- deviceExtension->PipeContext[i].PipeType=SCODataIn;
- deviceExtension->AudioInPipe=Interface->Pipes[i];
- FreeBT_DbgPrint(3, ("FBTUSB: ACL Data Out Endpoint\n"));
- break;
-
- case FREEBT_STDENDPOINT_AUDIOOUT:
- deviceExtension->PipeContext[i].PipeType=SCODataOut;
- deviceExtension->AudioOutPipe=Interface->Pipes[i];
- FreeBT_DbgPrint(3, ("FBTUSB: ACL Data Out Endpoint\n"));
- break;
-
- }
-
- }
-
- }
+ {
+ FreeBT_DbgPrint(3, ("FBTUSB: SelectInterfaces: Allocated PipeContext
%p\n", deviceExtension->PipeContext));
+ for (i=0; i<Interface->NumberOfPipes; i++)
+ {
+ deviceExtension->PipeContext[i].PipeOpen = FALSE;
+
+ FreeBT_DbgPrint(3, ("FBTUSB: ---------\n"));
+ FreeBT_DbgPrint(3, ("FBTUSB: PipeType 0x%x\n",
Interface->Pipes[i].PipeType));
+ FreeBT_DbgPrint(3, ("FBTUSB: EndpointAddress 0x%x\n",
Interface->Pipes[i].EndpointAddress));
+ FreeBT_DbgPrint(3, ("FBTUSB: MaxPacketSize 0x%x\n",
Interface->Pipes[i].MaximumPacketSize));
+ FreeBT_DbgPrint(3, ("FBTUSB: Interval 0x%x\n",
Interface->Pipes[i].Interval));
+ FreeBT_DbgPrint(3, ("FBTUSB: Handle 0x%x\n",
Interface->Pipes[i].PipeHandle));
+ FreeBT_DbgPrint(3, ("FBTUSB: MaximumTransferSize 0x%x\n",
Interface->Pipes[i].MaximumTransferSize));
+
+ // Log the pipes
+ // Note the HCI Command endpoint won't appear here, because the
Default Control Pipe
+ // is used for this. The Default Control Pipe is always present at
EndPointAddress 0x0
+ switch (Interface->Pipes[i].EndpointAddress)
+ {
+ case FREEBT_STDENDPOINT_HCIEVENT:
+ deviceExtension->PipeContext[i].PipeType=HciEventPipe;
+ deviceExtension->EventPipe=Interface->Pipes[i];
+ FreeBT_DbgPrint(3, ("FBTUSB: HCI Event
Endpoint\n"));
+ break;
+
+ case FREEBT_STDENDPOINT_ACLIN:
+ deviceExtension->PipeContext[i].PipeType=AclDataIn;
+ deviceExtension->DataInPipe=Interface->Pipes[i];
+ FreeBT_DbgPrint(3, ("FBTUSB: ACL Data In
Endpoint\n"));
+ break;
+
+ case FREEBT_STDENDPOINT_ACLOUT:
+ deviceExtension->PipeContext[i].PipeType=AclDataOut;
+ deviceExtension->DataOutPipe=Interface->Pipes[i];
+ FreeBT_DbgPrint(3, ("FBTUSB: ACL Data Out
Endpoint\n"));
+ break;
+
+ case FREEBT_STDENDPOINT_AUDIOIN:
+ deviceExtension->PipeContext[i].PipeType=SCODataIn;
+ deviceExtension->AudioInPipe=Interface->Pipes[i];
+ FreeBT_DbgPrint(3, ("FBTUSB: ACL Data Out
Endpoint\n"));
+ break;
+
+ case FREEBT_STDENDPOINT_AUDIOOUT:
+ deviceExtension->PipeContext[i].PipeType=SCODataOut;
+ deviceExtension->AudioOutPipe=Interface->Pipes[i];
+ FreeBT_DbgPrint(3, ("FBTUSB: ACL Data Out
Endpoint\n"));
+ break;
+
+ }
+
+ }
+
+ }
FreeBT_DbgPrint(3, ("FBTUSB: ---------\n"));
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: SelectInterfaces: Failed to select an
interface\n"));
}
@@ -643,20 +643,20 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: SelectInterfaces:
USBD_CreateConfigurationRequestEx failed\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
}
if (tmp)
- {
+ {
ExFreePool(tmp);
}
if (urb)
- {
+ {
ExFreePool(urb);
}
@@ -674,11 +674,11 @@
siz = sizeof(struct _URB_SELECT_CONFIGURATION);
urb = (PURB) ExAllocatePool(NonPagedPool, siz);
if (urb)
- {
+ {
UsbBuildSelectConfigurationRequest(urb, (USHORT)siz, NULL);
ntStatus = CallUSBD(DeviceObject, urb);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: DeconfigureDevice: Failed to deconfigure
device\n"));
}
@@ -688,7 +688,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: DeconfigureDevice: Failed to allocate
urb\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
@@ -722,7 +722,7 @@
&ioStatus);
if (!irp)
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: CallUSBD: IoBuildDeviceIoControlRequest
failed\n"));
return STATUS_INSUFFICIENT_RESOURCES;
@@ -737,7 +737,7 @@
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, irp);
if (ntStatus == STATUS_PENDING)
- {
+ {
KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL);
ntStatus = ioStatus.Status;
@@ -808,7 +808,7 @@
// above us fails a query-stop and passes down the subsequent
// cancel-stop.
if(PendingStop == deviceExtension->DeviceState)
- {
+ {
KeInitializeEvent(&event, NotificationEvent, FALSE);
IoCopyCurrentIrpStackLocationToNext(Irp);
@@ -821,14 +821,14 @@
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(ntStatus == STATUS_PENDING)
- {
+ {
KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL);
ntStatus = Irp->IoStatus.Status;
}
if(NT_SUCCESS(ntStatus))
- {
+ {
KeAcquireSpinLock(&deviceExtension->DevStateLock, &oldIrql);
RESTORE_PREVIOUS_PNP_STATE(deviceExtension);
@@ -844,7 +844,7 @@
}
else
- {
+ {
// spurious Irp
ntStatus = STATUS_SUCCESS;
@@ -866,9 +866,9 @@
deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
if(WinXpOrBetter == deviceExtension->WdmVersion)
- {
+ {
if(deviceExtension->SSEnable)
- {
+ {
// Cancel the timer so that the DPCs are no longer fired.
// Thus, we are making judicious usage of our resources.
// we do not need DPCs because the device is stopping.
@@ -898,7 +898,7 @@
// the driver must not send any more Irps down that touch
// the device until another Start has occurred.
if (deviceExtension->WaitWakeEnable)
- {
+ {
CancelWaitWake(deviceExtension);
}
@@ -988,7 +988,7 @@
// someone above us fails a query-remove and passes down the
// subsequent cancel-remove.
if(PendingRemove == deviceExtension->DeviceState)
- {
+ {
KeInitializeEvent(&event, NotificationEvent, FALSE);
@@ -1002,14 +1002,14 @@
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(ntStatus == STATUS_PENDING)
- {
+ {
KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL);
ntStatus = Irp->IoStatus.Status;
}
if (NT_SUCCESS(ntStatus))
- {
+ {
KeAcquireSpinLock(&deviceExtension->DevStateLock, &oldIrql);
deviceExtension->QueueState = AllowRequests;
@@ -1026,8 +1026,8 @@
}
else
- {
- // spurious cancel-remove
+ {
+ // spurious cancel-remove
ntStatus = STATUS_SUCCESS;
}
@@ -1053,16 +1053,16 @@
// 2. return device and memory resources
// 3. disable interfaces
if(deviceExtension->WaitWakeEnable)
- {
+ {
CancelWaitWake(deviceExtension);
}
if (WinXpOrBetter == deviceExtension->WdmVersion)
- {
+ {
if (deviceExtension->SSEnable)
- {
+ {
// Cancel the timer so that the DPCs are no longer fired.
// we do not need DPCs because the device has been surprise
// removed
@@ -1090,7 +1090,7 @@
ntStatus = IoSetDeviceInterfaceState(&deviceExtension->InterfaceName, FALSE);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleSurpriseRemoval:
IoSetDeviceInterfaceState::disable:failed\n"));
}
@@ -1112,7 +1112,7 @@
NTSTATUS HandleRemoveDevice(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
KIRQL oldIrql;
- KEVENT event;
+ //KEVENT event;
ULONG requestCount;
NTSTATUS ntStatus;
PDEVICE_EXTENSION deviceExtension;
@@ -1126,7 +1126,7 @@
// (If we wanted to express an interest in preventing this removal,
// we should have failed the query remove IRP).
if(SurpriseRemoved != deviceExtension->DeviceState)
- {
+ {
// we are here after QUERY_REMOVE
KeAcquireSpinLock(&deviceExtension->DevStateLock, &oldIrql);
@@ -1134,15 +1134,15 @@
KeReleaseSpinLock(&deviceExtension->DevStateLock, oldIrql);
if(deviceExtension->WaitWakeEnable)
- {
+ {
CancelWaitWake(deviceExtension);
}
if(WinXpOrBetter == deviceExtension->WdmVersion)
- {
+ {
if (deviceExtension->SSEnable)
- {
+ {
// Cancel the timer so that the DPCs are no longer fired.
// we do not need DPCs because the device has been removed
KeCancelTimer(&deviceExtension->Timer);
@@ -1164,7 +1164,7 @@
ntStatus = IoSetDeviceInterfaceState(&deviceExtension->InterfaceName,
FALSE);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleRemoveDevice:
IoSetDeviceInterfaceState::disable:failed\n"));
}
@@ -1231,7 +1231,7 @@
pdc = irpStack->Parameters.DeviceCapabilities.Capabilities;
if(pdc->Version < 1 || pdc->Size < sizeof(DEVICE_CAPABILITIES))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleQueryCapabilities::request
failed\n"));
ntStatus = STATUS_UNSUCCESSFUL;
@@ -1254,7 +1254,7 @@
TRUE);
ntStatus = IoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(ntStatus == STATUS_PENDING)
- {
+ {
KeWaitForSingleObject(&event, Executive, KernelMode, FALSE, NULL);
ntStatus = Irp->IoStatus.Status;
@@ -1263,12 +1263,12 @@
// initialize PowerDownLevel to disabled
deviceExtension->PowerDownLevel = PowerDeviceUnspecified;
if(NT_SUCCESS(ntStatus))
- {
+ {
deviceExtension->DeviceCapabilities = *pdc;
for(i = PowerSystemSleeping1; i <= PowerSystemSleeping3; i++)
- {
+ {
if(deviceExtension->DeviceCapabilities.DeviceState[i] < PowerDeviceD3)
- {
+ {
deviceExtension->PowerDownLevel =
deviceExtension->DeviceCapabilities.DeviceState[i];
}
@@ -1283,8 +1283,8 @@
}
if(deviceExtension->PowerDownLevel == PowerDeviceUnspecified ||
- deviceExtension->PowerDownLevel <= PowerDeviceD0)
- {
+ deviceExtension->PowerDownLevel <= PowerDeviceD0)
+ {
deviceExtension->PowerDownLevel = PowerDeviceD2;
}
@@ -1317,19 +1317,19 @@
KeClearEvent(&deviceExtension->NoDpcWorkItemPendingEvent);
if(CanDeviceSuspend(deviceExtension))
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: DpcRoutine: Device is Idle\n"));
item = IoAllocateWorkItem(deviceObject);
if (item)
- {
+ {
IoQueueWorkItem(item, IdleRequestWorkerRoutine, DelayedWorkQueue, item);
ntStatus = STATUS_PENDING;
}
else
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: DpcRoutine: Cannot alloc memory for work
item\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
KeSetEvent(&deviceExtension->NoDpcWorkItemPendingEvent,
IO_NO_INCREMENT, FALSE);
@@ -1339,7 +1339,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: DpcRoutine: Idle event not signaled\n"));
KeSetEvent(&deviceExtension->NoDpcWorkItemPendingEvent, IO_NO_INCREMENT,
FALSE);
@@ -1351,7 +1351,7 @@
VOID IdleRequestWorkerRoutine(IN PDEVICE_OBJECT DeviceObject, IN PVOID Context)
{
- PIRP irp;
+ //PIRP irp;
NTSTATUS ntStatus;
PDEVICE_EXTENSION deviceExtension;
PIO_WORKITEM workItem;
@@ -1362,11 +1362,11 @@
workItem = (PIO_WORKITEM) Context;
if(CanDeviceSuspend(deviceExtension))
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: IdleRequestWorkerRoutine: Device is
idle\n"));
ntStatus = SubmitIdleRequestIrp(deviceExtension);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: IdleRequestWorkerRoutine:
SubmitIdleRequestIrp failed\n"));
}
@@ -1374,7 +1374,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: IdleRequestWorkerRoutine: Device is not
idle\n"));
}
@@ -1427,10 +1427,10 @@
// 3a. if the device is active, send them down
// 3b. else complete with STATUS_DELETE_PENDING
while(1)
- {
+ {
KeAcquireSpinLock(&DeviceExtension->QueueLock, &oldIrql);
if(IsListEmpty(&DeviceExtension->NewRequestsQueue))
- {
+ {
KeReleaseSpinLock(&DeviceExtension->QueueLock, oldIrql);
break;
@@ -1443,9 +1443,9 @@
// check if its already cancelled
if (nextIrp->Cancel)
- {
+ {
if(cancelRoutine)
- {
+ {
// the cancel routine for this IRP hasnt been called yet
// so queue the IRP in the cancelledIrp list and complete
// after releasing the lock
@@ -1454,8 +1454,8 @@
}
else
- {
- // the cancel routine has run
+ {
+ // the cancel routine has run
// it must be waiting to hold the queue lock
// so initialize the IRPs listEntry
InitializeListHead(listEntry);
@@ -1467,10 +1467,10 @@
}
else
- {
+ {
KeReleaseSpinLock(&DeviceExtension->QueueLock, oldIrql);
if(FailRequests == DeviceExtension->QueueState)
- {
+ {
nextIrp->IoStatus.Information = 0;
nextIrp->IoStatus.Status = STATUS_DELETE_PENDING;
IoCompleteRequest(nextIrp, IO_NO_INCREMENT);
@@ -1478,8 +1478,8 @@
}
else
- {
- PIO_STACK_LOCATION irpStack;
+ {
+ //PIO_STACK_LOCATION irpStack;
FreeBT_DbgPrint(3, ("FBTUSB: ProcessQueuedRequests::"));
FreeBT_IoIncrement(DeviceExtension);
@@ -1497,7 +1497,7 @@
}
while(!IsListEmpty(&cancelledIrpList))
- {
+ {
PLIST_ENTRY cancelEntry = RemoveHeadList(&cancelledIrpList);
cancelledIrp = CONTAINING_RECORD(cancelEntry, IRP, Tail.Overlay.ListEntry);
@@ -1547,14 +1547,14 @@
NULL);
if (NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetRegistryDword: Success, Value =
%X\n", *Value));
return STATUS_SUCCESS;
}
else
- {
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetRegistryDword: Failed\n"));
+ {
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_GetRegistryDword: Failed\n"));
*Value = 0;
return STATUS_UNSUCCESSFUL;
@@ -1573,7 +1573,7 @@
PIRP pendingIrp;
PIO_STACK_LOCATION pendingIrpStack,
irpStack;
- NTSTATUS ntStatus;
+ //NTSTATUS ntStatus;
deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
irpStack = IoGetCurrentIrpStackLocation(Irp);
@@ -1588,21 +1588,21 @@
for(thisEntry = listHead->Flink, nextEntry = thisEntry->Flink;
thisEntry != listHead;
thisEntry = nextEntry, nextEntry = thisEntry->Flink)
- {
+ {
pendingIrp = CONTAINING_RECORD(thisEntry, IRP, Tail.Overlay.ListEntry);
pendingIrpStack = IoGetCurrentIrpStackLocation(pendingIrp);
if (irpStack->FileObject == pendingIrpStack->FileObject)
- {
+ {
RemoveEntryList(thisEntry);
if (NULL == IoSetCancelRoutine(pendingIrp, NULL))
- {
+ {
InitializeListHead(thisEntry);
}
else
- {
+ {
InsertTailList(&cleanupList, thisEntry);
}
@@ -1614,7 +1614,7 @@
KeReleaseSpinLock(&deviceExtension->QueueLock, oldIrql);
while(!IsListEmpty(&cleanupList))
- {
+ {
thisEntry = RemoveHeadList(&cleanupList);
pendingIrp = CONTAINING_RECORD(thisEntry, IRP, Tail.Overlay.ListEntry);
@@ -1644,7 +1644,7 @@
if ((DeviceExtension->OpenHandleCount == 0) &&
(DeviceExtension->OutStandingIO == 1))
return TRUE;
- return FALSE;
+ return FALSE;
}
@@ -1654,8 +1654,8 @@
ULONG i;
NTSTATUS ntStatus;
PDEVICE_EXTENSION deviceExtension;
- PFREEBT_PIPE_CONTEXT pipeContext;
- PUSBD_PIPE_INFORMATION pipeInformation;
+ PFREEBT_PIPE_CONTEXT pipeContext;
+ //PUSBD_PIPE_INFORMATION pipeInformation;
PUSBD_INTERFACE_INFORMATION interfaceInfo;
deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
@@ -1668,14 +1668,14 @@
return STATUS_SUCCESS;
for(i=0; i<interfaceInfo->NumberOfPipes; i++)
- {
+ {
if(pipeContext[i].PipeOpen)
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_AbortPipes: Aborting open pipe
%d\n", i));
urb = (PURB) ExAllocatePool(NonPagedPool, sizeof(struct _URB_PIPE_REQUEST));
if (urb)
- {
+ {
urb->UrbHeader.Length = sizeof(struct _URB_PIPE_REQUEST);
urb->UrbHeader.Function = URB_FUNCTION_ABORT_PIPE;
urb->UrbPipeRequest.PipeHandle =
interfaceInfo->Pipes[i].PipeHandle;
@@ -1687,7 +1687,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_AbortPipes: Failed to alloc
memory for urb\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
return ntStatus;
@@ -1731,7 +1731,7 @@
if (result == 2)
KeClearEvent(&DeviceExtension->StopEvent);
- KeReleaseSpinLock(&DeviceExtension->IOCountLock, oldIrql);
+ KeReleaseSpinLock(&DeviceExtension->IOCountLock, oldIrql);
FreeBT_DbgPrint(3, ("FreeBT_IoIncrement::%d\n", result));
@@ -1752,7 +1752,7 @@
KeSetEvent(&DeviceExtension->StopEvent, IO_NO_INCREMENT, FALSE);
if(result == 0)
- {
+ {
ASSERT(Removed == DeviceExtension->DeviceState);
KeSetEvent(&DeviceExtension->RemoveEvent, IO_NO_INCREMENT, FALSE);
@@ -1790,35 +1790,35 @@
NTSTATUS ReleaseMemory(IN PDEVICE_OBJECT DeviceObject)
{
// Disconnect from the interrupt and unmap any I/O ports
- PDEVICE_EXTENSION deviceExtension;
- UNICODE_STRING uniDeviceName;
- NTSTATUS ntStatus;
+ PDEVICE_EXTENSION deviceExtension;
+ UNICODE_STRING uniDeviceName;
+ NTSTATUS ntStatus;
deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
if (deviceExtension->UsbConfigurationDescriptor)
- {
- FreeBT_DbgPrint(3, ("FBTUSB: ReleaseMemory: Freeing
UsbConfigurationDescriptor\n"));
+ {
+ FreeBT_DbgPrint(3, ("FBTUSB: ReleaseMemory: Freeing
UsbConfigurationDescriptor\n"));
ExFreePool(deviceExtension->UsbConfigurationDescriptor);
deviceExtension->UsbConfigurationDescriptor = NULL;
}
if(deviceExtension->UsbInterface)
- {
- FreeBT_DbgPrint(3, ("FBTUSB: ReleaseMemory: Freeing UsbInterface\n"));
+ {
+ FreeBT_DbgPrint(3, ("FBTUSB: ReleaseMemory: Freeing UsbInterface\n"));
ExFreePool(deviceExtension->UsbInterface);
deviceExtension->UsbInterface = NULL;
}
if(deviceExtension->PipeContext)
- {
- RtlInitUnicodeString(&uniDeviceName, deviceExtension->wszDosDeviceName);
- ntStatus = IoDeleteSymbolicLink(&uniDeviceName);
- if (!NT_SUCCESS(ntStatus))
- FreeBT_DbgPrint(3, ("FBTUSB: Failed to delete symbolic link %ws\n",
deviceExtension->wszDosDeviceName));
-
- FreeBT_DbgPrint(3, ("FBTUSB: ReleaseMemory: Freeing PipeContext %p\n",
deviceExtension->PipeContext));
+ {
+ RtlInitUnicodeString(&uniDeviceName, deviceExtension->wszDosDeviceName);
+ ntStatus = IoDeleteSymbolicLink(&uniDeviceName);
+ if (!NT_SUCCESS(ntStatus))
+ FreeBT_DbgPrint(3, ("FBTUSB: Failed to delete symbolic link %ws\n",
deviceExtension->wszDosDeviceName));
+
+ FreeBT_DbgPrint(3, ("FBTUSB: ReleaseMemory: Freeing PipeContext %p\n",
deviceExtension->PipeContext));
ExFreePool(deviceExtension->PipeContext);
deviceExtension->PipeContext = NULL;
@@ -1831,7 +1831,7 @@
PCHAR PnPMinorFunctionString (UCHAR MinorFunction)
{
switch (MinorFunction)
- {
+ {
case IRP_MN_START_DEVICE:
return "IRP_MN_START_DEVICE\n";
Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
==============================================================================
--- trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bluetooth/fbtusb/fbtpwr.c [iso-8859-1] Tue May 1 16:53:02 2012
@@ -22,9 +22,9 @@
// Handle power events
NTSTATUS FreeBT_DispatchPower(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
- NTSTATUS ntStatus;
+ NTSTATUS ntStatus = STATUS_SUCCESS;
PIO_STACK_LOCATION irpStack;
- PUNICODE_STRING tagString;
+ //PUNICODE_STRING tagString;
PDEVICE_EXTENSION deviceExtension;
irpStack = IoGetCurrentIrpStackLocation(Irp);
@@ -38,7 +38,7 @@
// it should return STATUS_PENDING and queue all incoming
// IRPs until the IRP completes.
if (Removed == deviceExtension->DeviceState)
- {
+ {
// Even if a driver fails the IRP, it must nevertheless call
// PoStartNextPowerIrp to inform the Power Manager that it
@@ -53,7 +53,7 @@
}
if (NotStarted == deviceExtension->DeviceState)
- {
+ {
// if the device is not started yet, pass it down
PoStartNextPowerIrp(Irp);
IoSkipCurrentIrpStackLocation(Irp);
@@ -66,7 +66,7 @@
FreeBT_IoIncrement(deviceExtension);
switch(irpStack->MinorFunction)
- {
+ {
case IRP_MN_SET_POWER:
// The Power Manager sends this IRP for one of the
// following reasons:
@@ -82,7 +82,7 @@
IoMarkIrpPending(Irp);
switch(irpStack->Parameters.Power.Type)
- {
+ {
case SystemPowerState:
HandleSystemSetPower(DeviceObject, Irp);
ntStatus = STATUS_PENDING;
@@ -108,7 +108,7 @@
IoMarkIrpPending(Irp);
switch(irpStack->Parameters.Power.Type)
- {
+ {
case SystemPowerState:
HandleSystemQueryPower(DeviceObject, Irp);
ntStatus = STATUS_PENDING;
@@ -144,7 +144,7 @@
PoStartNextPowerIrp(Irp);
ntStatus = PoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: Lower drivers failed the wait-wake
Irp\n"));
}
@@ -168,7 +168,7 @@
IoSkipCurrentIrpStackLocation(Irp);
ntStatus = PoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_DispatchPower: Lower drivers failed
this Irp\n"));
}
@@ -205,7 +205,7 @@
// Fail a query for a power state incompatible with waking up the system
if ((deviceExtension->WaitWakeEnable) && (systemState >
deviceExtension->DeviceCapabilities.SystemWake))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleSystemQueryPower: Query for an
incompatible system power state\n"));
PoStartNextPowerIrp(Irp);
@@ -222,7 +222,7 @@
// if querying for a lower S-state, issue a wait-wake
if((systemState > deviceExtension->SysPower) &&
(deviceExtension->WaitWakeEnable))
- {
+ {
IssueWaitWake(deviceExtension);
}
@@ -296,7 +296,7 @@
deviceExtension->DevPower - 1));
if (deviceExtension->WaitWakeEnable && deviceState >
deviceExtension->DeviceCapabilities.DeviceWake)
- {
+ {
PoStartNextPowerIrp(Irp);
Irp->IoStatus.Status = ntStatus = STATUS_INVALID_DEVICE_STATE;
Irp->IoStatus.Information = 0;
@@ -310,16 +310,16 @@
}
if (deviceState < deviceExtension->DevPower)
- {
+ {
ntStatus = STATUS_SUCCESS;
}
else
- {
+ {
ntStatus = HoldIoRequests(DeviceObject, Irp);
if(STATUS_PENDING == ntStatus)
- {
+ {
return ntStatus;
}
@@ -332,13 +332,13 @@
Irp->IoStatus.Status = ntStatus;
Irp->IoStatus.Information = 0;
if(!NT_SUCCESS(ntStatus))
- {
+ {
IoCompleteRequest(Irp, IO_NO_INCREMENT);
}
else
- {
+ {
IoSkipCurrentIrpStackLocation(Irp);
ntStatus=PoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
@@ -357,7 +357,7 @@
NTSTATUS SysPoCompletionRoutine(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN
PDEVICE_EXTENSION DeviceExtension)
{
NTSTATUS ntStatus;
- PIO_STACK_LOCATION irpStack;
+ PIO_STACK_LOCATION irpStack;
ntStatus = Irp->IoStatus.Status;
irpStack = IoGetCurrentIrpStackLocation(Irp);
@@ -366,7 +366,7 @@
// lower drivers failed this Irp
if(!NT_SUCCESS(ntStatus))
- {
+ {
PoStartNextPowerIrp(Irp);
FreeBT_DbgPrint(3, ("FBTUSB: SysPoCompletionRoutine::"));
FreeBT_IoDecrement(DeviceExtension);
@@ -377,7 +377,7 @@
// ..otherwise update the cached system power state (IRP_MN_SET_POWER)
if(irpStack->MinorFunction == IRP_MN_SET_POWER)
- {
+ {
DeviceExtension->SysPower = irpStack->Parameters.Power.State.SystemState;
}
@@ -415,14 +415,14 @@
powerContext = (PPOWER_COMPLETION_CONTEXT) ExAllocatePool(NonPagedPool,
sizeof(POWER_COMPLETION_CONTEXT));
if (!powerContext)
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: SendDeviceIrp: Failed to alloc memory for
powerContext\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
}
else
- {
+ {
powerContext->DeviceObject = DeviceObject;
powerContext->SIrp = SIrp;
@@ -438,9 +438,9 @@
}
if (!NT_SUCCESS(ntStatus))
- {
+ {
if (powerContext)
- {
+ {
ExFreePool(powerContext);
}
@@ -516,7 +516,7 @@
deviceExtension->DevPower - 1));
if (newDevState < oldDevState)
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: HandleDeviceSetPower: Adding power to the
device\n"));
@@ -531,23 +531,23 @@
ntStatus = PoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
- }
+ }
else
- {
+ {
// newDevState >= oldDevState
// hold I/O if transition from D0 -> DX (X = 1, 2, 3)
// if transition from D1 or D2 to deeper sleep states,
// I/O queue is already on hold.
if(PowerDeviceD0 == oldDevState && newDevState > oldDevState)
- {
+ {
// D0 -> DX transition
FreeBT_DbgPrint(3, ("FBTUSB: HandleDeviceSetPower: Removing power from
the device\n"));
ntStatus = HoldIoRequests(DeviceObject, Irp);
if (!NT_SUCCESS(ntStatus))
- {
+ {
PoStartNextPowerIrp(Irp);
Irp->IoStatus.Status = ntStatus;
Irp->IoStatus.Information = 0;
@@ -561,7 +561,7 @@
}
else
- {
+ {
goto HandleDeviceSetPower_Exit;
}
@@ -569,7 +569,7 @@
}
else if (PowerDeviceD0 == oldDevState && PowerDeviceD0 == newDevState)
- {
+ {
// D0 -> D0
// unblock the queue which may have been blocked processing
// query irp
@@ -594,7 +594,7 @@
ntStatus = PoCallDriver(deviceExtension->TopOfStackDeviceObject, Irp);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HandleDeviceSetPower: Lower drivers failed
a power Irp\n"));
}
@@ -617,13 +617,13 @@
ntStatus = Irp->IoStatus.Status;
if(Irp->PendingReturned)
- {
+ {
IoMarkIrpPending(Irp);
}
if(!NT_SUCCESS(ntStatus))
- {
+ {
PoStartNextPowerIrp(Irp);
FreeBT_DbgPrint(3, ("FBTUSB: FinishDevPoUpIrp::"));
@@ -665,7 +665,7 @@
// save/restore.
PoSetPowerState(DeviceObject, DevicePowerState, newState);
if(PowerDeviceD0 == newDevState)
- {
+ {
KeAcquireSpinLock(&DeviceExtension->DevStateLock, &oldIrql);
DeviceExtension->QueueState = AllowRequests;
KeReleaseSpinLock(&DeviceExtension->DevStateLock, oldIrql);
@@ -701,7 +701,7 @@
newState = irpStack->Parameters.Power.State;
if (NT_SUCCESS(ntStatus) && irpStack->MinorFunction == IRP_MN_SET_POWER)
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: updating cache..\n"));
DeviceExtension->DevPower = newState.DeviceState;
PoSetPowerState(DeviceObject, DevicePowerState, newState);
@@ -734,7 +734,7 @@
context = (PWORKER_THREAD_CONTEXT) ExAllocatePool(NonPagedPool,
sizeof(WORKER_THREAD_CONTEXT));
if(context)
- {
+ {
item = IoAllocateWorkItem(DeviceObject);
context->Irp = Irp;
@@ -742,7 +742,7 @@
context->WorkItem = item;
if (item)
- {
+ {
IoMarkIrpPending(Irp);
IoQueueWorkItem(item, HoldIoRequestsWorkerRoutine, DelayedWorkQueue,
context);
ntStatus = STATUS_PENDING;
@@ -750,7 +750,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: HoldIoRequests: Failed to allocate memory
for workitem\n"));
ExFreePool(context);
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
@@ -760,7 +760,7 @@
}
else
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HoldIoRequests: Failed to alloc memory for
worker thread context\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
@@ -806,16 +806,16 @@
// now send the Irp down
IoCopyCurrentIrpStackLocationToNext(irp);
IoSetCompletionRoutine(
- irp,
- (PIO_COMPLETION_ROUTINE) FinishDevPoDnIrp,
- deviceExtension,
- TRUE,
- TRUE,
- TRUE);
+ irp,
+ (PIO_COMPLETION_ROUTINE) FinishDevPoDnIrp,
+ deviceExtension,
+ TRUE,
+ TRUE,
+ TRUE);
ntStatus = PoCallDriver(deviceExtension->TopOfStackDeviceObject, irp);
if(!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: HoldIoRequestsWorkerRoutine: Lower driver fail
a power Irp\n"));
}
@@ -892,7 +892,7 @@
FreeBT_DbgPrint(3, ("FBTUSB: IssueWaitWake: Entered\n"));
if(InterlockedExchange(&DeviceExtension->FlagWWOutstanding, 1))
- {
+ {
return STATUS_DEVICE_BUSY;
}
@@ -909,7 +909,7 @@
&DeviceExtension->WaitWakeIrp);
if(!NT_SUCCESS(ntStatus))
- {
+ {
InterlockedExchange(&DeviceExtension->FlagWWOutstanding, 0);
}
@@ -928,10 +928,10 @@
Irp = (PIRP) InterlockedExchangePointer(&DeviceExtension->WaitWakeIrp, NULL);
if(Irp)
- {
+ {
IoCancelIrp(Irp);
if(InterlockedExchange(&DeviceExtension->FlagWWCancel, 1))
- {
+ {
PoStartNextPowerIrp(Irp);
Irp->IoStatus.Status = STATUS_CANCELLED;
Irp->IoStatus.Information = 0;
@@ -949,7 +949,7 @@
{
FreeBT_DbgPrint(3, ("FBTUSB: WaitWakeCompletionRoutine: Entered\n"));
if(Irp->PendingReturned)
- {
+ {
IoMarkIrpPending(Irp);
}
@@ -958,7 +958,7 @@
// as part of the completion process. If it's already NULL,
// avoid race with the CancelWaitWake routine.
if(InterlockedExchangePointer(&DeviceExtension->WaitWakeIrp, NULL))
- {
+ {
PoStartNextPowerIrp(Irp);
return STATUS_SUCCESS;
@@ -969,7 +969,7 @@
// If FlagWWCancel != 0, complete the Irp.
// If FlagWWCancel == 0, CancelWaitWake completes it.
if(InterlockedExchange(&DeviceExtension->FlagWWCancel, 1))
- {
+ {
PoStartNextPowerIrp(Irp);
return STATUS_CANCELLED;
@@ -1000,14 +1000,14 @@
InterlockedExchange(&deviceExtension->FlagWWOutstanding, 0);
if(!NT_SUCCESS(IoStatus->Status))
- {
+ {
return;
}
// wake up the device
if(deviceExtension->DevPower == PowerDeviceD0)
- {
+ {
FreeBT_DbgPrint(3, ("FBTUSB: WaitWakeCallback: Device already powered
up...\n"));
return;
@@ -1026,7 +1026,7 @@
NULL);
if(deviceExtension->WaitWakeEnable)
- {
+ {
IssueWaitWake(deviceExtension);
}
@@ -1041,7 +1041,7 @@
PCHAR PowerMinorFunctionString (IN UCHAR MinorFunction)
{
switch (MinorFunction)
- {
+ {
case IRP_MN_SET_POWER:
return "IRP_MN_SET_POWER\n";
Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtrwr.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
==============================================================================
--- trunk/reactos/drivers/bluetooth/fbtusb/fbtrwr.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bluetooth/fbtusb/fbtrwr.c [iso-8859-1] Tue May 1 16:53:02 2012
@@ -22,18 +22,18 @@
// Read/Write handler
NTSTATUS FreeBT_DispatchRead(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
- PMDL mdl;
- PURB urb;
- ULONG totalLength;
- ULONG stageLength;
- NTSTATUS ntStatus;
- ULONG_PTR virtualAddress;
- PFILE_OBJECT fileObject;
- PDEVICE_EXTENSION deviceExtension;
- PIO_STACK_LOCATION irpStack;
- PIO_STACK_LOCATION nextStack;
- PFREEBT_RW_CONTEXT rwContext;
- ULONG maxLength=0;
+ PMDL mdl;
+ PURB urb;
+ ULONG totalLength;
+ ULONG stageLength;
+ NTSTATUS ntStatus;
+ ULONG_PTR virtualAddress;
+ PFILE_OBJECT fileObject;
+ PDEVICE_EXTENSION deviceExtension;
+ PIO_STACK_LOCATION irpStack;
+ PIO_STACK_LOCATION nextStack;
+ PFREEBT_RW_CONTEXT rwContext;
+ //ULONG maxLength=0;
urb = NULL;
mdl = NULL;
@@ -56,7 +56,7 @@
// Make sure that any selective suspend request has been completed.
if (deviceExtension->SSEnable)
{
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchRead: Waiting on the
IdleReqPendEvent\n"));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchRead: Waiting on the
IdleReqPendEvent\n"));
KeWaitForSingleObject(&deviceExtension->NoIdleReqPendEvent,
Executive,
KernelMode,
@@ -80,7 +80,7 @@
}
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_DispatchRead: Transfer data length =
%d\n", totalLength));
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_DispatchRead: Transfer data length =
%d\n", totalLength));
if (totalLength == 0)
{
ntStatus = STATUS_SUCCESS;
@@ -189,7 +189,7 @@
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchRead::"));
FreeBT_IoIncrement(deviceExtension);
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchRead: URB sent to lower driver, IRP is
pending\n"));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchRead: URB sent to lower driver, IRP
is pending\n"));
// we return STATUS_PENDING and not the status returned by the lower layer.
return STATUS_PENDING;
@@ -206,13 +206,13 @@
NTSTATUS FreeBT_ReadCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID
Context)
{
- ULONG stageLength;
- NTSTATUS ntStatus;
- PIO_STACK_LOCATION nextStack;
- PFREEBT_RW_CONTEXT rwContext;
- PDEVICE_EXTENSION deviceExtension;
-
- deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
+ //ULONG stageLength;
+ NTSTATUS ntStatus;
+ //PIO_STACK_LOCATION nextStack;
+ PFREEBT_RW_CONTEXT rwContext;
+ PDEVICE_EXTENSION deviceExtension;
+
+ deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
rwContext = (PFREEBT_RW_CONTEXT) Context;
ntStatus = Irp->IoStatus.Status;
@@ -221,13 +221,13 @@
if (NT_SUCCESS(ntStatus))
{
- Irp->IoStatus.Information =
rwContext->Urb->UrbBulkOrInterruptTransfer.TransferBufferLength;
+ Irp->IoStatus.Information =
rwContext->Urb->UrbBulkOrInterruptTransfer.TransferBufferLength;
}
else
{
- Irp->IoStatus.Information = 0;
+ Irp->IoStatus.Information = 0;
FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_ReadCompletion: - failed with status =
%X\n", ntStatus));
}
@@ -252,18 +252,18 @@
// Read/Write handler
NTSTATUS FreeBT_DispatchWrite(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
{
- PMDL mdl;
- PURB urb;
- ULONG totalLength;
- ULONG stageLength;
- NTSTATUS ntStatus;
- ULONG_PTR virtualAddress;
- PFILE_OBJECT fileObject;
- PDEVICE_EXTENSION deviceExtension;
- PIO_STACK_LOCATION irpStack;
- PIO_STACK_LOCATION nextStack;
- PFREEBT_RW_CONTEXT rwContext;
- ULONG maxLength=0;
+ PMDL mdl;
+ PURB urb;
+ ULONG totalLength;
+ ULONG stageLength;
+ NTSTATUS ntStatus;
+ ULONG_PTR virtualAddress;
+ PFILE_OBJECT fileObject;
+ PDEVICE_EXTENSION deviceExtension;
+ PIO_STACK_LOCATION irpStack;
+ PIO_STACK_LOCATION nextStack;
+ PFREEBT_RW_CONTEXT rwContext;
+ //ULONG maxLength=0;
urb = NULL;
mdl = NULL;
@@ -286,7 +286,7 @@
// Make sure that any selective suspend request has been completed.
if (deviceExtension->SSEnable)
{
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_WriteDispatch: Waiting on the
IdleReqPendEvent\n"));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_WriteDispatch: Waiting on the
IdleReqPendEvent\n"));
KeWaitForSingleObject(&deviceExtension->NoIdleReqPendEvent,
Executive,
KernelMode,
@@ -310,10 +310,10 @@
}
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WriteDispatch: Transfer data length =
%d\n", totalLength));
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WriteDispatch: Transfer data length =
%d\n", totalLength));
if (totalLength>FBT_HCI_DATA_MAX_SIZE)
{
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WriteDispatch: Buffer exceeds maximum packet
length (%d), failing IRP\n", FBT_HCI_DATA_MAX_SIZE));
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WriteDispatch: Buffer exceeds maximum
packet length (%d), failing IRP\n", FBT_HCI_DATA_MAX_SIZE));
ntStatus = STATUS_INVALID_BUFFER_SIZE;
ExFreePool(rwContext);
goto FreeBT_DispatchWrite_Exit;
@@ -322,7 +322,7 @@
if (totalLength<FBT_HCI_DATA_MIN_SIZE)
{
- FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WriteDispatch: Zero length buffer, completing
IRP\n"));
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WriteDispatch: Zero length buffer,
completing IRP\n"));
ntStatus = STATUS_BUFFER_TOO_SMALL;
ExFreePool(rwContext);
goto FreeBT_DispatchWrite_Exit;
@@ -429,7 +429,7 @@
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchWrite::"));
FreeBT_IoIncrement(deviceExtension);
- FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchWrite: URB sent to lower driver, IRP is
pending\n"));
+ FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_DispatchWrite: URB sent to lower driver, IRP
is pending\n"));
// we return STATUS_PENDING and not the status returned by the lower layer.
return STATUS_PENDING;
@@ -446,13 +446,13 @@
NTSTATUS FreeBT_WriteCompletion(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp, IN PVOID
Context)
{
- ULONG stageLength;
- NTSTATUS ntStatus;
- PIO_STACK_LOCATION nextStack;
- PFREEBT_RW_CONTEXT rwContext;
- PDEVICE_EXTENSION deviceExtension;
-
- deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
+ ULONG stageLength;
+ NTSTATUS ntStatus;
+ PIO_STACK_LOCATION nextStack;
+ PFREEBT_RW_CONTEXT rwContext;
+ PDEVICE_EXTENSION deviceExtension;
+
+ deviceExtension = (PDEVICE_EXTENSION) DeviceObject->DeviceExtension;
rwContext = (PFREEBT_RW_CONTEXT) Context;
ntStatus = Irp->IoStatus.Status;
@@ -508,7 +508,7 @@
else
{
// No more data to transfer
- FreeBT_DbgPrint(1, ("FBTUSB: FreeNT_WriteCompletion: Write completed, %d bytes
written\n", Irp->IoStatus.Information));
+ FreeBT_DbgPrint(1, ("FBTUSB: FreeNT_WriteCompletion: Write
completed, %d bytes written\n", Irp->IoStatus.Information));
Irp->IoStatus.Information = rwContext->Numxfer;
}
Modified: trunk/reactos/drivers/bluetooth/fbtusb/fbtusb.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/bluetooth/fbtusb/f…
==============================================================================
--- trunk/reactos/drivers/bluetooth/fbtusb/fbtusb.c [iso-8859-1] (original)
+++ trunk/reactos/drivers/bluetooth/fbtusb/fbtusb.c [iso-8859-1] Tue May 1 16:53:02 2012
@@ -49,7 +49,7 @@
registryPath->Buffer = (PWSTR) ExAllocatePool(PagedPool,
registryPath->MaximumLength);
if (!registryPath->Buffer)
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: Failed to allocate memory for
registryPath\n"));
ntStatus = STATUS_INSUFFICIENT_RESOURCES;
goto DriverEntry_Exit;
@@ -90,7 +90,7 @@
registryPath = &Globals.FreeBT_RegistryPath;
if(registryPath->Buffer)
- {
+ {
ExFreePool(registryPath->Buffer);
registryPath->Buffer = NULL;
@@ -107,68 +107,68 @@
// to initialise
NTSTATUS NTAPI FreeBT_AddDevice(IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT
PhysicalDeviceObject)
{
- NTSTATUS ntStatus;
- PDEVICE_OBJECT deviceObject;
- PDEVICE_EXTENSION deviceExtension;
- POWER_STATE state;
- KIRQL oldIrql;
- UNICODE_STRING uniDeviceName;
- WCHAR wszDeviceName[255]={0};
- UNICODE_STRING uniDosDeviceName;
- LONG instanceNumber=0;
+ NTSTATUS ntStatus;
+ PDEVICE_OBJECT deviceObject;
+ PDEVICE_EXTENSION deviceExtension;
+ POWER_STATE state;
+ //KIRQL oldIrql;
+ UNICODE_STRING uniDeviceName;
+ WCHAR wszDeviceName[255]={0};
+ UNICODE_STRING uniDosDeviceName;
+ LONG instanceNumber=0;
FreeBT_DbgPrint(3, ("FBTUSB: FreeBT_AddDevice: Entered\n"));
deviceObject = NULL;
- swprintf(wszDeviceName, L"\\Device\\FbtUsb%02d", instanceNumber);
- RtlInitUnicodeString(&uniDeviceName, wszDeviceName);
- ntStatus=STATUS_OBJECT_NAME_COLLISION;
- while (instanceNumber<99 && !NT_SUCCESS(ntStatus))
- {
- swprintf(wszDeviceName, L"\\Device\\FbtUsb%02d", instanceNumber);
- uniDeviceName.Length = wcslen(wszDeviceName) * sizeof(WCHAR);
- FreeBT_DbgPrint(1, ("FBTUSB: Attempting to create device %ws\n",
wszDeviceName));
- ntStatus = IoCreateDevice(
- DriverObject, // our driver object
- sizeof(DEVICE_EXTENSION), // extension size for us
- &uniDeviceName, // name for this device
- FILE_DEVICE_UNKNOWN,
- 0, // device characteristics
- FALSE, // Not exclusive
- &deviceObject); // Our device object
-
- if (!NT_SUCCESS(ntStatus))
- instanceNumber++;
-
- }
+ swprintf(wszDeviceName, L"\\Device\\FbtUsb%02d", instanceNumber);
+ RtlInitUnicodeString(&uniDeviceName, wszDeviceName);
+ ntStatus=STATUS_OBJECT_NAME_COLLISION;
+ while (instanceNumber<99 && !NT_SUCCESS(ntStatus))
+ {
+ swprintf(wszDeviceName, L"\\Device\\FbtUsb%02d", instanceNumber);
+ uniDeviceName.Length = wcslen(wszDeviceName) * sizeof(WCHAR);
+ FreeBT_DbgPrint(1, ("FBTUSB: Attempting to create device %ws\n",
wszDeviceName));
+ ntStatus = IoCreateDevice(
+ DriverObject, // our driver object
+ sizeof(DEVICE_EXTENSION), // extension size for us
+ &uniDeviceName, // name for this device
+ FILE_DEVICE_UNKNOWN,
+ 0, // device characteristics
+ FALSE, // Not exclusive
+ &deviceObject); // Our device object
+
+ if (!NT_SUCCESS(ntStatus))
+ instanceNumber++;
+
+ }
if (!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: Failed to create device object\n"));
return ntStatus;
}
- FreeBT_DbgPrint(1, ("FBTUSB: Created device %ws\n", wszDeviceName));
+ FreeBT_DbgPrint(1, ("FBTUSB: Created device %ws\n", wszDeviceName));
deviceExtension = (PDEVICE_EXTENSION) deviceObject->DeviceExtension;
deviceExtension->FunctionalDeviceObject = deviceObject;
deviceExtension->PhysicalDeviceObject = PhysicalDeviceObject;
deviceObject->Flags |= DO_DIRECT_IO;
- swprintf(deviceExtension->wszDosDeviceName, L"\\DosDevices\\FbtUsb%02d",
instanceNumber);
- RtlInitUnicodeString(&uniDosDeviceName, deviceExtension->wszDosDeviceName);
- ntStatus=IoCreateSymbolicLink(&uniDosDeviceName, &uniDeviceName);
- if (!NT_SUCCESS(ntStatus))
- {
- FreeBT_DbgPrint(1, ("FBTUSB: Failed to create symbolic link %ws to %ws,
status=0x%08x\n", deviceExtension->wszDosDeviceName, wszDeviceName, ntStatus));
- IoDeleteDevice(deviceObject);
- return ntStatus;
-
- }
-
- FreeBT_DbgPrint(1, ("FBTUSB: Created symbolic link %ws\n",
deviceExtension->wszDosDeviceName));
+ swprintf(deviceExtension->wszDosDeviceName, L"\\DosDevices\\FbtUsb%02d",
instanceNumber);
+ RtlInitUnicodeString(&uniDosDeviceName, deviceExtension->wszDosDeviceName);
+ ntStatus=IoCreateSymbolicLink(&uniDosDeviceName, &uniDeviceName);
+ if (!NT_SUCCESS(ntStatus))
+ {
+ FreeBT_DbgPrint(1, ("FBTUSB: Failed to create symbolic link %ws to %ws,
status=0x%08x\n", deviceExtension->wszDosDeviceName, wszDeviceName, ntStatus));
+ IoDeleteDevice(deviceObject);
+ return ntStatus;
+
+ }
+
+ FreeBT_DbgPrint(1, ("FBTUSB: Created symbolic link %ws\n",
deviceExtension->wszDosDeviceName));
KeInitializeSpinLock(&deviceExtension->DevStateLock);
@@ -205,10 +205,10 @@
// Delegating to WMILIB
ntStatus = FreeBT_WmiRegistration(deviceExtension);
if (!NT_SUCCESS(ntStatus))
- {
+ {
FreeBT_DbgPrint(1, ("FBTUSB: FreeBT_WmiRegistration failed with %X\n",
ntStatus));
IoDeleteDevice(deviceObject);
- IoDeleteSymbolicLink(&uniDosDeviceName);
+ IoDeleteSymbolicLink(&uniDosDeviceName);
return ntStatus;
}
@@ -216,7 +216,7 @@
// Set the flags as underlying PDO
if (PhysicalDeviceObject->Flags & DO_POWER_PAGABLE)
- {
+ {
deviceObject->Flags |= DO_POWER_PAGABLE;
}
@@ -237,12 +237,12 @@
// attachment chain. This is where all the IRPs should be routed.
deviceExtension->TopOfStackDeviceObject =
IoAttachDeviceToDeviceStack(deviceObject, PhysicalDeviceObject);
if (NULL == deviceExtension->TopOfStackDeviceObject)
- {
+ {
#ifdef ENABLE_WMI
FreeBT_WmiDeRegistration(deviceExtension);
#endif
IoDeleteDevice(deviceObject);
- IoDeleteSymbolicLink(&uniDosDeviceName);
+ IoDeleteSymbolicLink(&uniDosDeviceName);
return STATUS_NO_SUCH_DEVICE;
}
@@ -253,37 +253,37 @@
NULL,
&deviceExtension->InterfaceName);
if (!NT_SUCCESS(ntStatus))
- {
+ {
#ifdef ENABLE_WMI
FreeBT_WmiDeRegistration(deviceExtension);
#endif
IoDetachDevice(deviceExtension->TopOfStackDeviceObject);
IoDeleteDevice(deviceObject);
- IoDeleteSymbolicLink(&uniDosDeviceName);
+ IoDeleteSymbolicLink(&uniDosDeviceName);
return ntStatus;
}
if (IoIsWdmVersionAvailable(1, 0x20))
- {
+ {
deviceExtension->WdmVersion = WinXpOrBetter;
}
else if (IoIsWdmVersionAvailable(1, 0x10))
- {
+ {
deviceExtension->WdmVersion = Win2kOrBetter;
}
else if (IoIsWdmVersionAvailable(1, 0x5))
- {
+ {
deviceExtension->WdmVersion = WinMeOrBetter;
}
else if (IoIsWdmVersionAvailable(1, 0x0))
- {
+ {
deviceExtension->WdmVersion = Win98OrBetter;
}
@@ -292,14 +292,14 @@
deviceExtension->SSEnable = 0;
// WinXP only: check the registry flag indicating whether
- // the device should selectively suspend when idle
+ // the device should selectively suspend when idle
if (WinXpOrBetter == deviceExtension->WdmVersion)
- {
+ {
FreeBT_GetRegistryDword(FREEBT_REGISTRY_PARAMETERS_PATH,
L"BulkUsbEnable",
(PULONG)(&deviceExtension->SSRegistryEnable));
if (deviceExtension->SSRegistryEnable)
- {
+ {
// initialize DPC
KeInitializeDpc(&deviceExtension->DeferredProcCall, DpcRoutine,
deviceObject);