다음을 통해 공유


_URB_CONTROL_FEATURE_REQUEST 구조체(usb.h)

_URB_CONTROL_FEATURE_REQUEST 구조는 USB 클라이언트 드라이버가 디바이스, 인터페이스 또는 엔드포인트에서 기능을 설정하거나 지우는 데 사용됩니다.

구문

struct _URB_CONTROL_FEATURE_REQUEST {
  struct _URB_HEADER   Hdr;
  PVOID                Reserved;
  ULONG                Reserved2;
  ULONG                Reserved3;
  PVOID                Reserved4;
  PMDL                 Reserved5;
  struct _URB          *UrbLink;
  struct _URB_HCD_AREA hca;
  USHORT               Reserved0;
  USHORT               FeatureSelector;
  USHORT               Index;
  USHORT               Reserved1;
};

멤버

Hdr

URB 헤더 정보를 지정하는 _URB_HEADER 구조체에 대한 포인터입니다. Hdr.Function 은 디바이스, 인터페이스, 엔드포인트 또는 기타 비표준 구성 요소에서 수행할 집합 또는 명확한 기능 작업을 나타냅니다. Hdr.Function 에는 다음 값 중 하나가 있어야 합니다.

Hdr.Length는 와 같 sizeof(_URB_CONTROL_FEATURE_REQUEST)아야 합니다.

Reserved

예약되어 있습니다. 사용하지 마십시오.

Reserved2

예약되어 있습니다. 사용하지 마십시오.

Reserved3

예약되어 있습니다. 사용하지 마십시오.

Reserved4

예약되어 있습니다. 사용하지 마십시오.

Reserved5

예약되어 있습니다. 사용하지 마십시오.

UrbLink

예약되어 있습니다. 사용하지 마십시오.

hca

예약되어 있습니다. 사용하지 마십시오.

Reserved0

예약되어 있습니다. 사용하지 마십시오.

FeatureSelector

지워지거나 설정할 USB 정의 기능 코드를 지정합니다. 유효하지 않거나, 설정할 수 없거나, 지울 수 없는 기능 코드를 사용하면 대상이 중단됩니다. 버스 드라이버는 FeatureSelector 멤버의 값을 설치 패킷의 wValue 필드에 복사합니다.

Index

요청이 엔드포인트 또는 인터페이스에 대한 경우 성공적인 구성 요청에 의해 반환되는 디바이스 정의 인덱스를 지정합니다. 그렇지 않으면 인덱스가 0이어야 합니다. 버스 드라이버는 인덱스 멤버의 값을 설치 패킷의 wIndex 필드에 복사합니다.

Reserved1

예약되어 있습니다. 사용하지 마십시오.

설명

드라이버는 UsbBuildFeatureRequest 서비스 루틴을 사용하여 이 URB의 형식을 지정할 수 있습니다.

이 구조체의 예약 멤버는 불투명으로 처리되어야 하며 시스템 사용을 위해 예약되어 있어야 합니다.

드라이버가 IRP_MN_WAIT_WAKE 요청으로 원격 절전 모드 해제를 위해 USB 디바이스를 무장하면 USB 버스 드라이버가 디바이스에서 원격 절전 모드 해제 기능을 자동으로 설정합니다. 컨트롤 기능 URB는 필요하지 않습니다.

마찬가지로 드라이버가 파이프에 URB_FUNCTION_SYNC_RESET_PIPE_AND_CLEAR_STALL 함수 형식의 URB를 발급하면 버스 드라이버는 파이프의 엔드포인트 중단 기능을 자동으로 지웁니다. 드라이버는 엔드포인트 중단을 지우기 위해 제어 기능 URB를 파이프로 보낼 필요가 없습니다.

요구 사항

요구 사항
헤더 usb.h(Usb.h 포함)

추가 정보

Urb

USB 구조체

_URB_HEADER