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 SPBREQUEST-Objekte des SPB-Controllers enthält.

Rückgabewert

Nichts

Bemerkungen

Während der Geräteinitialisierung kann Ihr SPB-Controllertreiber diese Methode aufrufen, um die Standardattribute für SPBREQUEST-Objekte festzulegen. Danach weist SpbCx diese Attribute allen E/A-Anforderungen zu, die sie an Zielgeräte im 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 kann der Aufruf von SpbControllerSetRequestAttributesjedoch die Werte der folgenden Elemente dieser Struktur ändern:

  • EvtCleanupCallback
  • EvtDestroyCallback-
  • ContextSizeOverride-
  • ContextTypeInfo-
SpbControllerSetRequestAttributes diese Werte als Standardattribute für SPBREQUEST-Objekte verwenden. Der Treiber kann jedoch nicht die Standardattributewerte ändern, die in den Membern ExecutionLevel, SynchronizationScopeund ParentObject Member enthalten sind. Diese Member müssen von den Werten unverändert bleiben, in denen die WDF_OBJECT_ATTRIBUTES_INIT Funktion sie initialisiert.

WDF_OBJECT_ATTRIBUTES_INIT initialisiert die EvtCleanupCallback und EvtDestroyCallback Member auf NULL-. Wenn Sie diese Standardwerte so ändern, dass ein EvtCleanupCallback oder EvtDestroyCallback Rückruffunktion registriert wird, 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 niemals die Anforderung an den SPB-Controllertreiber darstellt (da die Anforderung abgebrochen wird, nachdem sie in der Warteschlange eintreffen, aber bevor sie an den Treiber übergeben wird).

Der SPB-Controllertreiber muss SpbControllerSetRequestAttributes- aufrufen, bevor es commits das Geräteobjekt, d. h. vor der Rückgabe von der EvtDriverDeviceAdd Rückruf oder fügt den PDO der untergeordneten Liste des Controllers hinzu. Die untergeordnete Liste stellt die Geräte dar, die an den Bus angeschlossen sind. Weitere Informationen finden Sie unter Aufzählen der Geräte auf einem Bus-.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Verfügbar ab Windows 8.
Zielplattform- Universal
Header- spbcx.h
Library Spbcxstubs.lib
IRQL- PASSIVE_LEVEL

Siehe auch

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT