Partager via


SpbControllerSetRequestAttributes, fonction (spbcx.h)

La méthode SpbControllerSetRequestAttributes définit les attributs d’objet qui seront utilisés pour tous les objets SPBREQUEST que l’extension d’infrastructure SPB (SpbCx) remet au pilote du contrôleur SPB.

Syntaxe

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

Paramètres

[in] FxDevice

Un handle WDFDEVICE pour l’objet d’appareil qui représente le contrôleur SPB.

[in] RequestAttributes

Pointeur vers une structure de WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui contient des attributs pour les objets SPBREQUEST du contrôleur SPB.

Valeur de retour

None

Remarques

Pendant l’initialisation de l’appareil, votre pilote de contrôleur SPB peut appeler cette méthode pour définir les attributs par défaut des objets SPBREQUEST. Par la suite, SpbCx affecte ces attributs à toutes les demandes d’E/S qu’il remet (ou transfère) aux appareils cibles sur le bus.

RequestAttributes pointe vers une structure WDF_OBJECT_ATTRIBUTES . L’appelant doit avoir précédemment appelé la fonction WDF_OBJECT_ATTRIBUTES_INIT pour initialiser cette structure. Après cet appel, mais avant l’appel à SpbControllerSetRequestAttributes, l’appelant peut modifier les valeurs des membres suivants de cette structure :

  • EvtCleanupCallback
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes utilise ces valeurs comme attributs par défaut pour les objets SPBREQUEST. Toutefois, le pilote ne peut pas modifier les valeurs d’attribut par défaut contenues dans les membres ExecutionLevel, SynchronizationScope et ParentObject . Ces membres doivent rester inchangés par rapport aux valeurs auxquelles la fonction WDF_OBJECT_ATTRIBUTES_INIT les initialise.

WDF_OBJECT_ATTRIBUTES_INIT initialise les membres EvtCleanupCallback et EvtDestroyCallback sur NULL. Si vous modifiez ces valeurs par défaut pour inscrire une fonction de rappel EvtCleanupCallback ou EvtDestroyCallback , cette fonction est appelée chaque fois qu’une demande d’E/S arrive dans la file d’attente du contrôleur SPB, qui est gérée par SpbCx. Une telle demande d’E/S entraîne l’appel de la fonction EvtCleanupCallback ou EvtDestroyCallback , même si SpbCx ne présente jamais la demande au pilote du contrôleur SPB (car la demande est annulée une fois qu’elle arrive dans la file d’attente, mais avant qu’elle ne soit transmise au pilote).

Le pilote du contrôleur SPB doit appeler SpbControllerSetRequestAttributes avant de valider l’objet d’appareil, c’est-à-dire avant de retourner à partir du rappel EvtDriverDeviceAdd ou d’ajouter le PDO à la liste enfant du contrôleur. La liste enfant représente les appareils qui sont attachés au bus. Pour plus d’informations, consultez Énumération des appareils sur un bus.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8.
Plateforme cible Universal
En-tête spbcx.h
Bibliothèque Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Voir aussi

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT