Funzione SpbControllerSetRequestAttributes (spbcx.h)

Il metodo SpbControllerSetRequestAttributes imposta gli attributi dell'oggetto che verranno usati per tutti gli oggetti SPBREQUEST che l'estensione spb framework (SpbCx) recapita 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 qualsiasi richiesta di I/O che recapita (o inoltra) ai dispositivi di destinazione nel 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 userà questi valori come attributi predefiniti per gli oggetti SPBREQUEST. Tuttavia, il driver non può modificare i valori di attributo predefiniti contenuti nei membri ExecutionLevel, SynchronizationScope e 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 EvtCleanupCallback e EvtDestroyCallback su NULL. Se si modificano questi valori predefiniti per registrare una funzione di callback EvtCleanupCallback o EvtDestroyCallback , 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 funzione EvtCleanupCallback o 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 eseguire il commit dell'oggetto dispositivo, ovvero prima che venga restituito dal callback EvtDriverDeviceAdd o aggiunto il PDO all'elenco figlio del controller. L'elenco figlio rappresenta i dispositivi collegati al bus. Per altre informazioni, vedere Enumerazione dei dispositivi in un bus.

Requisiti

Requisito Valore
Client minimo supportato Disponibile a partire da Windows 8.
Piattaforma di destinazione Universale
Intestazione spbcx.h
Libreria Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Vedi anche

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT