WdfFdoInitSetFilter 함수(wdffdo.h)

[KMDF 및 UMDF에 적용]

WdfFdoInitSetFilter 메서드는 호출 드라이버를 지정된 디바이스의 상위 수준 또는 하위 수준 필터 드라이버로 식별합니다.

구문

void WdfFdoInitSetFilter(
  [in] PWDFDEVICE_INIT DeviceInit
);

매개 변수

[in] DeviceInit

드라이버가 EvtDriverDeviceAdd 콜백 함수에서 가져온 WDFDEVICE_INIT 구조체에 대한 포인터입니다.

반환 값

없음

설명

필터 드라이버는 일반적으로 일부 I/O 요청을 처리하지만 드라이버 스택의 다음 드라이버에 대부분의 요청을 전달하기만 하면 됩니다. 프레임워크가 드라이버의 디바이스 중 하나에 대한 요청을 수신하고 드라이버가 요청 유형과 일치하는 요청을 수신하기 위해 I/O 큐를 만들지 않은 경우 프레임워크가 요청을 처리하는 방법은 드라이버가 WdfFdoInitSetFilter를 호출했는지 여부에 따라 달라집니다.

  • 드라이버가 WdfFdoInitSetFilter를 호출하는 경우 드라이버 프레임워크는 요청을 다음 드라이버로 전달합니다.
  • 드라이버가 WdfFdoInitSetFilter를 호출하지 않으면 프레임워크는 STATUS_INVALID_DEVICE_REQUEST 상태 값으로 요청을 완료합니다.
드라이버가 WdfFdoInitSetFilter를 호출하는 경우 프레임워크가 이러한 호출에서 제공하는 정보를 무시하므로 WdfDeviceInitSetIoType, WdfDeviceInitSetPowerInrush 또는 WdfDeviceInitSetPowerPageable 을 호출하면 안 됩니다. 대신 프레임워크는 드라이버의 디바이스 스택에 있는 다음 하위 디바이스 개체에서 이 정보를 가져옵니다.

드라이버는 WdfDeviceCreate를 호출하기 전에 WdfFdoInitSetFilter를 호출해야 합니다. WdfDeviceCreate를 호출하는 방법에 대한 자세한 내용은 프레임워크 디바이스 개체 만들기를 참조하세요. 또한 드라이버는 EvtDriverDeviceAdd 콜백 함수에서 반환하기 전에 WdfFdoInitSetFilter를 호출해야 합니다.

WdfFdoInitSetFilter에 대한 자세한 내용은 필터 드라이버에서 디바이스 개체 만들기, I/O 큐 만들기I/O 요청 전달을 참조하세요.

예제

다음 코드 예제에서는 호출 드라이버를 지정된 디바이스에 대한 필터 드라이버로 식별합니다.

WdfFdoInitSetFilter(DeviceInit);

요구 사항

요구 사항
대상 플랫폼 유니버설
최소 KMDF 버전 1.0
최소 UMDF 버전 2.0
머리글 wdffdo.h(Wdf.h 포함)
라이브러리 Wdf01000.sys(KMDF); WUDFx02000.dll(UMDF)
IRQL PASSIVE_LEVEL
DDI 규정 준수 규칙 DeviceInitAPI(kmdf), DriverCreate(kmdf), DrvAckIoStop(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf)

추가 정보

WDFDEVICE_INIT