Compartilhar via


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 do dispositivo que representa o controlador SPB.

[in] RequestAttributes

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

Valor de retorno

Nenhum

Observações

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 todas as solicitações de E/S que ele entrega (ou encaminha) para dispositivos de destino no barramento.

RequestAttributes aponta para uma estrutura de 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 desta 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, SynchronizationScopee ParentObject. Esses membros devem permanecer inalterados dos valores aos quais a função WDF_OBJECT_ATTRIBUTES_INIT os inicializa.

WDF_OBJECT_ATTRIBUTES_INIT inicializa o EvtCleanupCallback e membros do EvtDestroyCallback para NULL. Se você alterar esses valores padrão para registrar um EvtCleanupCallback ou EvtDestroyCallback função de retorno de chamada, 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 à fila, mas antes de ser passada para o driver).

O driver do controlador SPB deve chamar SpbControllerSetRequestAttributes antes de confirma o objeto do dispositivo, ou seja, antes de retornar do EvtDriverDeviceAdd retorno de chamada 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
de cliente com suporte mínimo Disponível a partir do Windows 8.
da Plataforma de Destino Universal
cabeçalho spbcx.h
biblioteca Spbcxstubs.lib
IRQL PASSIVE_LEVEL

Consulte também

EvtDriverDeviceAdd

WDF_OBJECT_ATTRIBUTES

WDF_OBJECT_ATTRIBUTES_INIT