Share via


SpbControllerSetRequestAttributes 함수(spbcx.h)

SpbControllerSetRequestAttributes 메서드는 SPB 프레임워크 확장(SpbCx)이 SPB 컨트롤러 드라이버에 제공하는 모든 SPBREQUEST 개체에 사용할 개체 특성을 설정합니다.

구문

void SpbControllerSetRequestAttributes(
  [in] WDFDEVICE              FxDevice,
  [in] PWDF_OBJECT_ATTRIBUTES RequestAttributes
);

매개 변수

[in] FxDevice

SPB 컨트롤러를 나타내는 디바이스 개체에 대한 WDFDEVICE 핸들입니다.

[in] RequestAttributes

SPB 컨트롤러의 SPBREQUEST 개체에 대한 특성을 포함하는 호출자가 할당한 WDF_OBJECT_ATTRIBUTES 구조체에 대한 포인터입니다.

반환 값

없음

설명

디바이스를 초기화하는 동안 SPB 컨트롤러 드라이버는 이 메서드를 호출하여 SPBREQUEST 개체의 기본 특성을 설정할 수 있습니다. 그 후 SpbCx는 버스의 대상 디바이스에 전달(또는 전달)하는 모든 I/O 요청에 이러한 특성을 할당합니다.

RequestAttributes는WDF_OBJECT_ATTRIBUTES 구조를 가리킵니다. 호출자는 이전에 이 구조를 초기화하기 위해 WDF_OBJECT_ATTRIBUTES_INIT 함수를 호출해야 합니다. 이 호출 후에 SpbControllerSetRequestAttributes를 호출하기 전에 호출자는 이 구조체의 다음 멤버의 값을 변경할 수 있습니다.

  • EvtCleanupCallback
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes 는 이러한 값을 SPBREQUEST 개체의 기본 특성으로 사용합니다. 그러나 드라이버는 ExecutionLevel, SynchronizationScopeParentObject 멤버에 포함된 기본 특성 값을 변경할 수 없습니다. 이러한 멤버는 WDF_OBJECT_ATTRIBUTES_INIT 함수가 초기화하는 값과 변경되지 않은 상태로 유지되어야 합니다.

WDF_OBJECT_ATTRIBUTES_INITEvtCleanupCallbackEvtDestroyCallback 멤버를 NULL로 초기화합니다. 이러한 기본값을 변경하여 EvtCleanupCallback 또는 EvtDestroyCallback 콜백 함수를 등록하는 경우 이 함수는 SPBCx에서 관리하는 SPB 컨트롤러 큐에 I/O 요청이 도착할 때마다 호출됩니다. 이러한 I/O 요청으로 인해 SpbCx가 SPB 컨트롤러 드라이버에 요청을 표시하지 않더라도 EvtCleanupCallback 또는 EvtDestroyCallback 함수가 호출됩니다(요청이 큐에 도착한 후 드라이버에 전달되기 전에 취소되기 때문).

SPB 컨트롤러 드라이버는 디바이스 개체를 커밋하기 전에 SpbControllerSetRequestAttributes를 호출해야 합니다. 즉, EvtDriverDeviceAdd 콜백에서 반환되거나 PDO를 컨트롤러의 자식 목록에 추가하기 전에 호출해야 합니다. 자식 목록은 버스에 연결된 디바이스를 나타냅니다. 자세한 내용은 버스에서 디바이스 열거를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 8 사용하여 사용할 수 있습니다.
대상 플랫폼 유니버설
헤더 spbcx.h
라이브러리 Spbcxstubs.lib
IRQL PASSIVE_LEVEL

추가 정보

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT