Share via


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 sich ein Gerät im Leerlauf befindet und angehalten werden kann.

Beim Senden dieser IOCTL muss der Anrufer eine Rückrufroutine bereitstellen, die das tatsächliche Anhalten des Geräts durchführt. Der USB-Bustreiber ruft diese Routine bei PASSIVE_LEVEL auf, wenn es sicher ist, dass das Gerät heruntergefahren wird. Wenn das Gerät die Remoteaktivierung unterstützt und keine Wait/Wake-IRP bereits aussteht, sollte die Rückrufroutine eine Warte-/Wake-IRP an den Bustreiber für das Gerät senden, bevor es heruntergefahren wird.

Weitere Informationen finden Sie unter Unterstützen von Geräten, die über Wake-Up-Funktionen und selektives Anhalten von USB verfügen.

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION ist eine E/A-Steuerungsanforderung im Kernelmodus. Diese Anforderung richtet sich an den USB-Hub-PDO. Diese Anforderung muss an einem 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

Keine.

Länge des Ausgabepuffers

Keine.

Statusblock

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

Anforderungen

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