Freigeben über


IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IOCTL (usbioctl.h)

Die IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION E/A-Anforderung wird von Treibern verwendet, um den USB-Bustreiber darüber zu informieren, dass ein Gerät im Leerlauf ist und angehalten werden kann.

Beim Senden dieses IOCTL muss der Anrufer eine Rückrufroutine bereitstellen, die das tatsächliche Anhalten des Geräts ausführt. Der USB-Bustreiber ruft diese Routine bei PASSIVE_LEVEL auf, wenn es sicher ist, dass das Gerät ausgeschaltet wird. Wenn das Gerät remote wake up unterstützt und keine Wait/Wake IRP bereits aussteht, sollte die Rückrufroutine einen Wait/Wake IRP an den Bustreiber für das Gerät übermitteln, bevor sie herunterfahren.

Weitere Informationen finden Sie unter Unterstützen von Geräten mit Wake-Up Funktionen und usb-selektives Anhalten.

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION ist eine E/A-Steuerungsanforderung im Kernelmodus. Diese Anforderung zielt auf den USB-Hub-PDO ab. Diese Anforderung muss an eine IRQL von PASSIVE_LEVEL gesendet werden.

Hauptcode

IRP_MJ_INTERNAL_DEVICE_CONTROL

Eingabepuffer

Parameters.DeviceIoControl.Type3InputBuffer sollte ein Zeiger auf eine USB_IDLE_CALLBACK_INFO Struktur sein. Diese Struktur sollte einen Zeiger auf die Rückrufroutine und einen Zeiger auf den Rückrufroutinekontext enthalten.

Die Struktur mit den Rückrufinformationen wird in usbioctl.h wie folgt definiert:

typedef VOID (*USB_IDLE_CALLBACK)(PVOID Context);

typedef struct _USB_IDLE_CALLBACK_INFO
{
  USB_IDLE_CALLBACK IdleCallback;
  PVOID IdleContext;
} USB_IDLE_CALLBACK_INFO, *PUSB_IDLE_CALLBACK_INFO;

Eingabepufferlänge

Die Größe einer USB_IDLE_CALLBACK_INFO Struktur.

Ausgabepuffer

Nichts.

Länge des Ausgabepuffers

Nichts.

Statusblock

Der Bus- oder Porttreiber legt Irp->IoStatus.Status auf STATUS_SUCCESS oder den entsprechenden Fehlerstatus fest.

Anforderungen

Anforderung Wert
Header- usbioctl.h (include Usbioctl.h)