IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION IOCTL(usbioctl.h)

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION I/O 요청은 드라이버가 USB 버스 드라이버에 디바이스가 유휴 상태이며 일시 중단될 수 있음을 알리는 데 사용됩니다.

이 IOCTL을 보낼 때 호출자는 디바이스의 실제 일시 중단을 수행하는 콜백 루틴을 제공해야 합니다. USB 버스 드라이버는 디바이스의 전원이 낮아지는 것이 안전할 때 PASSIVE_LEVEL 이 루틴을 호출합니다. 디바이스가 원격 절전 모드 해제를 지원하고 대기/절전 모드 해제 IRP가 이미 보류 중인 경우 콜백 루틴은 전원을 닫기 전에 디바이스의 버스 드라이버에 Wait/Wake IRP를 제출해야 합니다.

자세한 내용은 Wake-Up 기능이 있는 디바이스 지원USB 선택적 일시 중단을 참조하세요.

IOCTL_INTERNAL_USB_SUBMIT_IDLE_NOTIFICATION 커널 모드 I/O 제어 요청입니다. 이 요청은 USB 허브 PDO를 대상으로 합니다. 이 요청은 PASSIVE_LEVEL IRQL로 보내야 합니다.

주 코드

IRP_MJ_INTERNAL_DEVICE_CONTROL

입력 버퍼

Parameters.DeviceIoControl.Type3InputBufferUSB_IDLE_CALLBACK_INFO 구조체에 대한 포인터여야 합니다. 이 구조체에는 콜백 루틴에 대한 포인터와 콜백 루틴 컨텍스트에 대한 포인터가 포함되어야 합니다.

콜백 정보를 보유하는 구조체는 다음과 같이 usbioctl.h에 정의됩니다.

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;

입력 버퍼 길이

USB_IDLE_CALLBACK_INFO 구조체의 크기입니다.

출력 버퍼

없음

출력 버퍼 길이

없음

상태 블록

버스 또는 포트 드라이버는 Irp-IoStatus.Status>를 STATUS_SUCCESS 설정하거나 적절한 오류 상태.

요구 사항

요구 사항
헤더 usbioctl.h(Usbioctl.h 포함)