windows-nt/Source/XPSP1/NT/drivers/published/ddk/inc/wdm/usbkern.w
2020-09-26 16:20:57 +08:00

91 lines
2.3 KiB
OpenEdge ABL

/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
USBKERN.H
Abstract:
This file contains KERNEL Mode IOCTLS supported by
the HCD (PORT) drivers ROOT HUB PDO.
Environment:
kernel mode
Revision History:
--*/
#ifndef __USBKERN_H__
#define __USBKERN_H__
#include "usbiodef.h"
/*
the following IOCTLS are supported by the ROOT HUB PDO
*/
/* IOCTL_INTERNAL_USB_GET_HUB_COUNT
This IOCTL is used internally by the hub driver, it returns the
number of hubs between the device and the root hub.
The HUB Driver passed this irp to its PDO.
As the IRP is passed from HUB to HUB each hub FDO increments
the count. When the irp reaches the root hub PDO it is completed
Parameters.Others.Argument1 =
pointer to be count of hubs in chain;
*/
#define IOCTL_INTERNAL_USB_GET_HUB_COUNT USB_KERNEL_CTL(USB_GET_HUB_COUNT)
/* IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO
This IOCTL is used internally by the hub driver. This API will
return the PhysicalDeviceObject of the root hub enumerated by the
controller.
Parameters.Others.Argument1 =
pointer to be filled in with PDO for the root hub;
Parameters.Others.Argument2 =
pointer to be filled in with FDO of the USB Host Controller;
*/
#define IOCTL_INTERNAL_USB_GET_ROOTHUB_PDO USB_KERNEL_CTL(USB_GET_ROOTHUB_PDO)
/* IOCTL_INTERNAL_USB_GET_DEVICE_ADDRESS
This IOCTL returns the device address associated with a particular PDO.
(INPUT)
Parameters.Others.Argument1 =
pointer to device handle
(OUTPUT)
Parameters.Others.Argument2 =
pointer to device address
The api travels all the way down the stack where it is handled by the
port driver
*/
#define IOCTL_INTERNAL_USB_GET_DEVICE_HANDLE CTL_CODE(FILE_DEVICE_USB, \
USB_GET_DEVICE_HANDLE, \
METHOD_NEITHER, \
FILE_ANY_ACCESS)
#endif //__USBKERN_H__