Compartilhar via


Função WdfDmaEnablerConfigureSystemProfile (wdfdmaenabler.h)

[Aplica-se somente ao KMDF]

O método WdfDmaEnablerConfigureSystemProfile define as configurações específicas de hardware para um habilitador de DMA no modo de sistema e conclui a inicialização do recurso.

Sintaxe

NTSTATUS WdfDmaEnablerConfigureSystemProfile(
  [in] WDFDMAENABLER                  DmaEnabler,
  [in] PWDF_DMA_SYSTEM_PROFILE_CONFIG ProfileConfig,
  [in] WDF_DMA_DIRECTION              ConfigDirection
);

Parâmetros

[in] DmaEnabler

Um identificador para um objeto de habilitador de DMA.

[in] ProfileConfig

Um ponteiro para uma estrutura WDF_DMA_SYSTEM_PROFILE_CONFIG . Os drivers devem inicializar essa estrutura chamando WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT.

[in] ConfigDirection

Um valor de tipo WDF_DMA_DIRECTION que especifica a direção da operação de transferência de DMA. Se o valor WDF_DMA_PROFILE para esse habilitador não for WdfDmaProfileSystemDuplex, a estrutura ignorará esse parâmetro.

Retornar valor

WdfDmaEnablerConfigureSystemProfile retornará STATUS_SUCCESS se a operação for bem-sucedida. Caso contrário, o método pode retornar um dos valores a seguir.

Código de retorno Descrição
STATUS_NOT_SUPPORTED
O driver solicitou uma configuração de DMA sem suporte no sistema operacional atual.
STATUS_INVALID_PARAMETER
O driver forneceu NULL no parâmetro ProfileConfig .
STATUS_INFO_LENGTH_MISMATCH
O membro Size da estrutura apontada pelo parâmetro ProfileConfig não é igual ao tamanho da estrutura WDF_DMA_SYSTEM_PROFILE_CONFIG .
STATUS_INVALID_PARAMETER
O membro DmaDescriptor da estrutura apontada pelo parâmetro ProfileConfig é NULL ou o parâmetro ConfigDirection contém um valor inválido.

Comentários

Antes de chamar WdfDmaEnablerConfigureSystemProfile, o driver deve chamar WdfDmaEnablerCreate para criar o objeto enabler.

Um driver normalmente chama WdfDmaEnablerConfigureSystemProfile de sua função de retorno de chamada EvtDevicePrepareHardware .

Se o driver especificou um perfil duplex quando chamou WdfDmaEnablerCreate, o valor do parâmetro ConfigDirection do método WdfDmaEnablerConfigureSystemProfile deve ser WdfDmaDirectionReadFromDevice para obter a estrutura DMA_ADAPTER para operações de leitura e WdfDmaDirectionWriteToDevice para obter a estrutura DMA_ADAPTER para operações de gravação.

Se o habilitador de DMA for um habilitador duplex, o driver deverá inicializar uma direção específica antes de poder usá-lo.

Se o driver não especificou um perfil duplex, o driver poderá especificar WdfDmaDirectionReadFromDevice ou WdfDmaDirectionWriteToDevice.

Exemplos

O exemplo de código a seguir é da função de retorno de chamada EvtDevicePrepareHardware de um driver. Este exemplo inicializa uma estrutura WDF_DMA_SYSTEM_PROFILE_CONFIG e chama WdfDmaEnablerConfigureSystemProfile.


WDF_DMA_SYSTEM_PROFILE_CONFIG systemDmaConfig;  
PHYSICAL_ADDRESS pa;  
 
pa.QuadPart = 0;  
  
WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT(&systemDmaConfig,   
                                   pa,  
                                   Width8Bits,  
                                   partial);  
  
systemDmaConfig.DemandMode = true;  
 
ntStatus = WdfDmaEnablerConfigureSystemProfile(fdoExtension->DmaEnabler,   
                                               &systemDmaConfig,   
                                               WdfDmaDirectionReadFromDevice);  

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8
Plataforma de Destino Universal
Versão mínima do KMDF 1.11
Cabeçalho wdfdmaenabler.h (inclua Wdf.h)
Biblioteca Wdf01000.sys (consulte Controle de versão da biblioteca de estrutura.)
IRQL PASSIVE_LEVEL
Regras de conformidade da DDI DriverCreate(kmdf)

Confira também

WDF_DMA_ENABLER_CONFIG

WDF_DMA_ENABLER_CONFIG_INIT

WDF_DMA_SYSTEM_PROFILE_CONFIG_INIT

WdfDmaEnablerCreate