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 |
---|---|
|
O driver solicitou uma configuração de DMA sem suporte no sistema operacional atual. |
|
O driver forneceu NULL no parâmetro ProfileConfig . |
|
O membro Size da estrutura apontada pelo parâmetro ProfileConfig não é igual ao tamanho da estrutura WDF_DMA_SYSTEM_PROFILE_CONFIG . |
|
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) |