Função UfxFdoInit (ufxclient.h)

Inicializa a estrutura WDFDEVICE_INIT que o driver cliente fornece posteriormente quando chama WdfDeviceCreate.

Sintaxe

NTSTATUS UfxFdoInit(
  [in]      WDFDRIVER              WdfDriver,
  [in, out] PWDFDEVICE_INIT        DeviceInit,
  [in, out] PWDF_OBJECT_ATTRIBUTES FdoAttributes
);

Parâmetros

[in] WdfDriver

Um identificador para o objeto de driver WDF do driver que o driver obteve de uma chamada anterior para WdfDriverCreate ou WdfGetDriver.

[in, out] DeviceInit

Um ponteiro para uma estrutura WDFDEVICE_INIT .

[in, out] FdoAttributes

Um ponteiro para uma estrutura de WDF_OBJECT_ATTRIBUTES alocada pelo chamador que descreve atributos de objeto para o

Retornar valor

Se a operação for bem-sucedida, o método retornará STATUS_SUCCESS ou outro valor status para o qual NT_SUCCESS(status) é igual a TRUE. Caso contrário, retornará um valor status para o qual NT_SUCCESS(status) é igual a FALSE.

Comentários

O driver do cliente recebe um ponteiro para uma estrutura de WDFDEVICE_INIT alocada por estrutura em sua função de retorno de chamada EvtDriverDeviceAdd . Em seguida, ele chama UfxFdoInit com esse ponteiro antes de chamar WdfDeviceCreate para criar o objeto WDFDEVICE.

Por padrão, para drivers WDF, o driver de função do dispositivo é o proprietário da política de energia.

O snippet de código a seguir mostra como chamar UfxFdoInit.

NTSTATUS
UfxClientDeviceCreate(
    _In_ WDFDRIVER Driver,
    _In_ PWDFDEVICE_INIT DeviceInit
    )
/*++

Routine Description:

    Worker routine called to create a device and its software resources.

Arguments:

    Driver - WDF driver object

    DeviceInit - Pointer to an opaque init structure. Memory for this
                 structure will be freed by the framework when WdfDeviceCreate
                 succeeds. So don't access the structure after that point.

Return Value:

    Appropriate NTSTATUS value

--*/
{
    WDF_OBJECT_ATTRIBUTES DeviceAttributes;
    WDFDEVICE WdfDevice;

    PAGED_CODE();

    WDF_OBJECT_ATTRIBUTES_INIT_CONTEXT_TYPE(&DeviceAttributes, CONTROLLER_CONTEXT);

    //
    // Do UFX-specific initialization
    //
    Status = UfxFdoInit(Driver, DeviceInit, &DeviceAttributes);

    //
    // Proceed to WdfDeviceCreate
    //
    
    ...

}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 10
Plataforma de Destino Windows
Cabeçalho ufxclient.h
Biblioteca ufxstub.lib
IRQL PASSIVE_LEVEL