Partager via


SpbControllerSetRequestAttributes, fonction (spbcx.h)

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

Syntaxe

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

Paramètres

[in] FxDevice

Handle WDFDEVICE sur l’objet d’appareil qui représente le contrôleur SPB.

[in] RequestAttributes

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

Valeur de retour

Aucun

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 pour les 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 le ExecutionLevel, SynchronizationScopeet membres 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 à NULL. Si vous modifiez ces valeurs par défaut pour inscrire une EvtCleanupCallback ou EvtDestroyCallback fonction de rappel, cette fonction est appelée chaque fois qu’une requête d’E/S arrive dans la file d’attente du contrôleur SPB, qui est gérée par SpbCx. Une telle requête 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 son passage au pilote).

Le pilote du contrôleur SPB doit appeler SpbControllerSetRequestAttributes avant qu’il n'valide l’objet d’appareil, autrement dit, avant de retourner à partir de la EvtDriverDeviceAdd rappel ou ajoute l’objet PDO à la liste enfant du contrôleur. La liste enfant représente les appareils attachés au bus. Pour plus d’informations, consultez énumération des appareils sur un bus.

Exigences

Exigence Valeur
client minimum pris en charge Disponible à partir de Windows 8.
plateforme cible Universel
d’en-tête spbcx.h
bibliothèque Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Voir aussi

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT