#include "usbhub.h"
+#include <wdmguid.h>
+
+#define NDEBUG
+#include <debug.h>
+
#define IO_METHOD_FROM_CTL_CODE(ctlCode) (ctlCode&0x00000003)
+DEFINE_GUID(GUID_DEVINTERFACE_USB_DEVICE,
+ 0xA5DCBF10L, 0x6530, 0x11D2, 0x90, 0x1F, 0x00, 0xC0, 0x4F, 0xB9, 0x51, 0xED);
+
NTSTATUS
NTAPI
UrbCompletion(
//
IoCompleteRequest(OriginalIrp, IO_NO_INCREMENT);
+ //
+ // Free our allocated IRP
+ //
+ IoFreeIrp(Irp);
+
//
// Return this status so the IO Manager doesnt mess with the Irp
//
//
Status = FowardUrbToRootHub(RootHubDeviceObject, IOCTL_INTERNAL_USB_SUBMIT_URB, Irp, Urb, NULL);
return Status;
- break;
}
//
// FIXME: Can these be sent to RootHub?
case IOCTL_INTERNAL_USB_GET_PORT_STATUS:
{
PORT_STATUS_CHANGE PortStatus;
- LONG PortId;
+ ULONG PortId;
PUCHAR PortStatusBits;
PortStatusBits = (PUCHAR)Stack->Parameters.Others.Argument1;
ASSERT(ChildDeviceExtension->Common.IsFDO == FALSE);
//
- // FIXME: Fow now assume success
+ // register device interface
//
+ IoRegisterDeviceInterface(DeviceObject, &GUID_DEVINTERFACE_USB_DEVICE, NULL, &ChildDeviceExtension->SymbolicLinkName);
+ IoSetDeviceInterfaceState(&ChildDeviceExtension->SymbolicLinkName, TRUE);
UNIMPLEMENTED
return STATUS_SUCCESS;