Freigeben über


SpbControllerSetRequestAttributes-Funktion (spbcx.h)

Die SpbControllerSetRequestAttributes-Methode legt Objektattribute fest, die für alle SPBREQUEST-Objekte verwendet werden, die von der SPB-Frameworkerweiterung (SpbCx) an den SPB-Controllertreiber übermittelt werden.

Syntax

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

Parameter

[in] FxDevice

Ein WDFDEVICE-Handle für das Geräteobjekt, das den SPB-Controller darstellt.

[in] RequestAttributes

Ein Zeiger auf eine vom Aufrufer zugewiesene WDF_OBJECT_ATTRIBUTES-Struktur , die Attribute für die SPB-Controller-SPBREQUEST-Objekte enthält.

Rückgabewert

Keine

Bemerkungen

Während der Geräteinitialisierung kann Ihr SPB-Controllertreiber diese Methode aufrufen, um die Standardattribute für SPBREQUEST-Objekte festzulegen. Anschließend weist SpbCx diese Attribute allen E/A-Anforderungen zu, die es an Zielgeräte auf dem Bus übermittelt (oder weiterleitet).

RequestAttributes verweist auf eine WDF_OBJECT_ATTRIBUTES-Struktur . Der Aufrufer muss zuvor die WDF_OBJECT_ATTRIBUTES_INIT-Funktion aufgerufen haben, um diese Struktur zu initialisieren. Nach diesem Aufruf, aber vor dem Aufruf von SpbControllerSetRequestAttributes kann der Aufrufer die Werte der folgenden Member dieser Struktur ändern:

  • EvtCleanupCallback
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes verwendet diese Werte als Standardattribute für SPBREQUEST-Objekte. Der Treiber kann jedoch die Standardwerte für Attributwerte, die in den Membern ExecutionLevel, SynchronizationScope und ParentObject enthalten sind, nicht ändern. Diese Member müssen gegenüber den Werten unverändert bleiben, in denen sie von der WDF_OBJECT_ATTRIBUTES_INIT-Funktion initialisiert werden.

WDF_OBJECT_ATTRIBUTES_INIT initialisiert die Member EvtCleanupCallback und EvtDestroyCallback auf NULL. Wenn Sie diese Standardwerte ändern, um eine EvtCleanupCallback - oder EvtDestroyCallback-Rückruffunktion zu registrieren, wird diese Funktion jedes Mal aufgerufen, wenn eine E/A-Anforderung in der SPB-Controllerwarteschlange eingeht, die von SpbCx verwaltet wird. Eine solche E/A-Anforderung bewirkt, dass die EvtCleanupCallback - oder EvtDestroyCallback-Funktion aufgerufen wird, auch wenn SpbCx die Anforderung nie an den SPB-Controllertreiber übermittelt (da die Anforderung abgebrochen wird, nachdem sie in der Warteschlange angekommen ist, aber bevor sie an den Treiber übergeben wird).

Der SPB-Controllertreiber muss SpbControllerSetRequestAttributes aufrufen, bevor er das Geräteobjekt committet , d. h. bevor er vom Rückruf "EvtDriverDeviceAdd " zurückgibt oder das PDO der untergeordneten Liste des Controllers hinzufügt. Die untergeordnete Liste stellt die Geräte dar, die an den Bus angefügt sind. Weitere Informationen finden Sie unter Auflisten der Geräte in einem Bus.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 8.
Zielplattform Universell
Header spbcx.h
Bibliothek Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Weitere Informationen

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT