Função SpbControllerSetRequestAttributes (spbcx.h)

O método SpbControllerSetRequestAttributes define atributos de objeto que serão usados para todos os objetos SPBREQUEST que a extensão da estrutura SPB (SpbCx) fornece ao driver do controlador SPB.

Sintaxe

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

Parâmetros

[in] FxDevice

Um identificador WDFDEVICE para o objeto de dispositivo que representa o controlador SPB.

[in] RequestAttributes

Um ponteiro para uma estrutura de WDF_OBJECT_ATTRIBUTES alocada pelo chamador que contém atributos para os objetos SPBREQUEST do controlador SPB.

Retornar valor

Nenhum

Comentários

Durante a inicialização do dispositivo, o driver do controlador SPB pode chamar esse método para definir os atributos padrão para objetos SPBREQUEST. Depois disso, o SpbCx atribui esses atributos a quaisquer solicitações de E/S que ele entrega (ou encaminha) para dispositivos de destino no barramento.

RequestAttributes aponta para uma estrutura WDF_OBJECT_ATTRIBUTES . O chamador deve ter chamado anteriormente a função WDF_OBJECT_ATTRIBUTES_INIT para inicializar essa estrutura. Após essa chamada, mas antes da chamada para SpbControllerSetRequestAttributes, o chamador pode alterar os valores dos seguintes membros dessa estrutura:

  • EvtCleanupCallback
  • EvtDestroyCallback
  • ContextSizeOverride
  • ContextTypeInfo
SpbControllerSetRequestAttributes usará esses valores como atributos padrão para objetos SPBREQUEST. No entanto, o driver não pode alterar os valores de atributo padrão contidos nos membros ExecutionLevel, SynchronizationScope e ParentObject . Esses membros devem permanecer inalterados dos valores para os quais a função WDF_OBJECT_ATTRIBUTES_INIT os inicializa.

WDF_OBJECT_ATTRIBUTES_INIT inicializa os membros EvtCleanupCallback e EvtDestroyCallback para NULL. Se você alterar esses valores padrão para registrar uma função de retorno de chamada EvtCleanupCallback ou EvtDestroyCallback , essa função será chamada sempre que uma solicitação de E/S chegar na fila do controlador SPB, que é gerenciada pelo SpbCx. Essa solicitação de E/S faz com que a função EvtCleanupCallback ou EvtDestroyCallback seja chamada mesmo que o SpbCx nunca apresente a solicitação ao driver do controlador SPB (porque a solicitação é cancelada depois que ela chega na fila, mas antes de ser passada para o driver).

O driver do controlador SPB deve chamar SpbControllerSetRequestAttributes antes de confirmar o objeto do dispositivo, ou seja, antes de retornar do retorno de chamada EvtDriverDeviceAdd ou adicionar o PDO à lista filho do controlador. A lista filho representa os dispositivos anexados ao barramento. Para obter mais informações, consulte Enumerando os dispositivos em um barramento.

Requisitos

Requisito Valor
Cliente mínimo com suporte Disponível a partir do Windows 8.
Plataforma de Destino Universal
Cabeçalho spbcx.h
Biblioteca Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Confira também

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT