Implementace rutiny zpětného volání IRP žádosti o nečinnosti USB
Když je volána MiniportIdleNotification, ovladač miniportu USB volá IoCallDriver, aby vydal paket IRP pro požadavek nečinnosti USB (IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION) k základnímu ovladači sběrnice USB. Ovladač miniportu vydává tento IRP, aby informoval ovladač sběrnice USB, že síťový adaptér je nečinný a musí být pozastaven.
Ovladač miniportu USB musí poskytovat rutinu zpětného volání pro nečinný požadavek IRP USB. Ovladač sběrnice USB volá tuto rutinu, když zjistí, že síťový adaptér může být pozastaven a převeden do stavu nízkého napájení.
Poznámka Jakmile ovladač sběrnice USB zpracuje požadavek IRP pro nečinnost USB, volá rutinu zpětného volání buď synchronně v rámci volání IoCallDriver, nebo asynchronně poté, co se MiniportIdleNotification vrátí.
Rutina zpětného volání musí volat pouze NdisMIdleNotificationConfirm, aby bylo možné informovat NDIS, že může pokračovat s přechodem stavu nízkého výkonu síťového adaptéru. Když ovladač volá NdisMIdleNotificationConfirm, musí také určit nejnižší stav napájení zařízení, na který může síťový adaptér přejít.
V kontextu volání NdisMIdleNotificationConfirmprovádí NDIS kroky potřebné k přechodu síťového adaptéru do stavu s nízkou spotřebou. Další informace naleznete v tématu Zpracování oznámení o selektivním pozastavení nečinnosti NDIS.
Následuje příklad rutiny zpětného volání pro IRP nečinného požadavku USB.
//
// MiniportUsbIdleRequestCallback()
//
// This is the USB selective suspend idle notification. All that is
// needed is to inform NDIS that the USB stack is ready to go to a
// low-power state. Be aware that USB devices will always be requested
// to transition to a power state of NdisDeviceStateD2.
//
VOID MiniportUsbIdleRequestCallback(PVOID AdapterContext)
{
NdisMIdleNotificationConfirm(
AdapterContext->MiniportAdapterHandle,
NdisDeviceStateD2
);
return;
}
Další informace o rutině zpětného volání žádosti o nečinnosti USB naleznete v tématu Rutina zpětného volání IRP žádosti o nečinnosti USB.