USB 驱动例程管理有关问题
USB 驱动例程管理问题
我采用的芯片是CY7c68013A,使用以下方法后就出现了关机后是后一步,没有关闭电涛,当然,重启也是一样不能关闭电源,其它的应该什么都关闭了.
/********************************************************************************************
电源管理例程Start
********************************************************************************************/
NTSTATUS Ezusb_PowerIrp(IN PDEVICE_OBJECT fdo,IN PIRP Irp)
{
NTSTATUS ntStatus;
PIO_STACK_LOCATION IrpStack, NextStack;
PDEVICE_EXTENSION pdx;
pdx = fdo-> DeviceExtension;
Irp-> IoStatus.Status = STATUS_SUCCESS;
Irp-> IoStatus.Information = 0;
IrpStack = IoGetCurrentIrpStackLocation (Irp);
switch (IrpStack-> MinorFunction) {
case IRP_MN_SET_POWER: //设置系统或设备电源状态
switch (IrpStack-> Parameters.Power.Type) {
case SystemPowerState:
break;
case DevicePowerState:
switch (IrpStack-> Parameters.Power.State.DeviceState) {
case PowerDeviceD3:
break;
case PowerDeviceD2:
break;
case PowerDeviceD1:
break;
case PowerDeviceD0:
break;
}
break;
}
break;
case IRP_MN_QUERY_POWER: //查询能否更改系统或设备电源状态
switch (IrpStack-> Parameters.Power.Type) {
case SystemPowerState:
break;
case DevicePowerState:
switch (IrpStack-> Parameters.Power.State.DeviceState) {
case PowerDeviceD2:
break;
case PowerDeviceD1:
我采用的芯片是CY7c68013A,使用以下方法后就出现了关机后是后一步,没有关闭电涛,当然,重启也是一样不能关闭电源,其它的应该什么都关闭了.
/********************************************************************************************
电源管理例程Start
********************************************************************************************/
NTSTATUS Ezusb_PowerIrp(IN PDEVICE_OBJECT fdo,IN PIRP Irp)
{
NTSTATUS ntStatus;
PIO_STACK_LOCATION IrpStack, NextStack;
PDEVICE_EXTENSION pdx;
pdx = fdo-> DeviceExtension;
Irp-> IoStatus.Status = STATUS_SUCCESS;
Irp-> IoStatus.Information = 0;
IrpStack = IoGetCurrentIrpStackLocation (Irp);
switch (IrpStack-> MinorFunction) {
case IRP_MN_SET_POWER: //设置系统或设备电源状态
switch (IrpStack-> Parameters.Power.Type) {
case SystemPowerState:
break;
case DevicePowerState:
switch (IrpStack-> Parameters.Power.State.DeviceState) {
case PowerDeviceD3:
break;
case PowerDeviceD2:
break;
case PowerDeviceD1:
break;
case PowerDeviceD0:
break;
}
break;
}
break;
case IRP_MN_QUERY_POWER: //查询能否更改系统或设备电源状态
switch (IrpStack-> Parameters.Power.Type) {
case SystemPowerState:
break;
case DevicePowerState:
switch (IrpStack-> Parameters.Power.State.DeviceState) {
case PowerDeviceD2:
break;
case PowerDeviceD1: