다음을 통해 공유


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 요청에 이러한 특성을 할당합니다.

RequestAttributesWDF_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