SRB_NOTIFY_IDLE_STATE
O driver de classe envia essa solicitação ao minidriver imediatamente antes de enviar a primeira solicitação aberta ou a última solicitação de fechamento. O minidriver pode usar SRB_NOTIFY_IDLE_STATE como uma notificação para ativar a suspensão seletiva de USB.
Valor Retornado
Esta solicitação é apenas um pacote de notificação; qualquer valor retornado fornecido pelo minidriver é ignorado.
Comentários
SRB_NOTIFY_IDLE_STATE é enviado no Microsoft Windows XP com Service Pack 2 (SP2) e posterior, mas não no Microsoft Windows Server 2003.
SRB_NOTIFY_IDLE_STATE corrige o problema de suspensão seletiva de USB que existe no driver da classe de fluxo (Stream.sys) no Windows XP com SP1. Você pode usar SRB_NOTIFY_IDLE_STATE para dar suporte à suspensão seletiva em minidrivers de instância única com base na classe de fluxo e USBCAMD2.
No Windows XP e anteriores, SRB_NOTIFY_IDLE_STATE não existe. Para o Windows XP e versões anteriores, o minidriver recebe SRB_GET_DEVICE_PROPERTY para ativar de um estado ocioso. Em seguida, o minidriver chama PoRequestPowerIrp para alterar o estado do dispositivo para D0.
No Windows XP com SP1 e Windows Server 2003, SRB_GET_DEVICE_PROPERTY não é enviado nessa situação. Se você estiver usando Stream.sys com esses sistemas operacionais, siga as instruções no artigo da Base de Dados de Conhecimento mencionado anteriormente.
Ao abrir a primeira instância do dispositivo, o driver de classe envia SRB_NOTIFY_IDLE_STATE imediatamente antes de enviar SRB_OPEN_DEVICE_INSTANCE.
Ao fechar a última instância do dispositivo, o driver de classe envia SRB_NOTIFY_IDLE_STATE imediatamente antes de enviar a solicitação para que o dispositivo faça a transição para o estado D3.
Quando o driver da classe de fluxo envia uma solicitação SRB_NOTIFY_IDLE_STATE, o minidriver recebe uma chamada para StrMiniReceiveDevicePacket.