Condividi tramite


Funzione SpbControllerSetRequestAttributes (spbcx.h)

Il metodo SpbControllerSetRequestAttributes imposta gli attributi dell'oggetto che verranno usati per tutti gli oggetti SPBREQUEST recapitati dall'estensione spb framework (SpbCx) al driver del controller SPB.

Sintassi

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

Parametri

[in] FxDevice

Handle WDFDEVICE per l'oggetto dispositivo che rappresenta il controller SPB.

[in] RequestAttributes

Puntatore a una struttura WDF_OBJECT_ATTRIBUTES allocata dal chiamante che contiene attributi per gli oggetti SPBREQUEST del controller SPB.

Valore restituito

Nessuno

Osservazioni

Durante l'inizializzazione del dispositivo, il driver del controller SPB può chiamare questo metodo per impostare gli attributi predefiniti per gli oggetti SPBREQUEST. Successivamente, SpbCx assegna questi attributi a tutte le richieste di I/O che recapita (o inoltra) ai dispositivi di destinazione sul bus.

RequestAttributes punta a una struttura WDF_OBJECT_ATTRIBUTES. Il chiamante deve in precedenza aver chiamato la funzione WDF_OBJECT_ATTRIBUTES_INIT per inizializzare questa struttura. Dopo questa chiamata, ma prima della chiamata a SpbControllerSetRequestAttributes, il chiamante può modificare i valori dei membri seguenti di questa struttura:

  • EvtCleanupCallback
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes useranno questi valori come attributi predefiniti per gli oggetti SPBREQUEST. Tuttavia, il driver non può modificare i valori di attributo predefiniti contenuti nei membri ExecutionLevel, SynchronizationScopee ParentObject. Questi membri devono rimanere invariati rispetto ai valori in cui la funzione WDF_OBJECT_ATTRIBUTES_INIT li inizializza.

WDF_OBJECT_ATTRIBUTES_INIT inizializza i membri EvtCleanupCall back e EvtDestroyCallbackNULL. Se si modificano questi valori predefiniti per registrare un EvtCleanupCallback o EvtDestroyCallback funzione di callback, questa funzione viene chiamata ogni volta che arriva una richiesta di I/O nella coda del controller SPB, gestita da SpbCx. Una richiesta di I/O di questo tipo fa sì che la EvtCleanupCallback o funzione EvtDestroyCallback venga chiamata anche se SpbCx non presenta mai la richiesta al driver del controller SPB (perché la richiesta viene annullata dopo l'arrivo nella coda ma prima che venga passata al driver).

Il driver del controller SPB deve chiamare SpbControllerSetRequestAttributes prima di esegue il commit'oggetto dispositivo, ovvero prima di tornare dal callback EvtDriverDeviceAdd o aggiunge il PDO all'elenco figlio del controller. L'elenco figlio rappresenta i dispositivi collegati al bus. Per altre informazioni, vedere Enumerating the Devices on a Bus.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 8.
piattaforma di destinazione Universale
intestazione spbcx.h
libreria Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Vedere anche

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT