Поделиться через


Функция UfxFdoInit (ufxclient.h)

Инициализирует структуру WDFDEVICE_INIT, которую драйвер клиента впоследствии предоставляет при вызове WdfDeviceCreate.

Синтаксис

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

Параметры

[in] WdfDriver

Дескриптор объекта драйвера WDF драйвера драйвера, полученного драйвером из предыдущего вызова WdfDriverCreate или WdfGetDriver.

[in, out] DeviceInit

Указатель на структуру WDFDEVICE_INIT.

[in, out] FdoAttributes

Указатель на структуру, выделенную вызывающим объектом, WDF_OBJECT_ATTRIBUTES, которая описывает атрибуты объекта для

Возвращаемое значение

Если операция выполнена успешно, метод возвращает STATUS_SUCCESS или другое значение состояния, для которого значение NT_SUCCESS(состояние) равно TRUE. В противном случае возвращается значение состояния, для которого NT_SUCCESS(состояние) равно FALSE.

Замечания

Драйвер клиента получает указатель на выделенную платформой структуру WDFDEVICE_INIT в ее функции обратного вызова EvtDriverDeviceAdd. Затем он вызывает UfxFdoInit с этим указателем перед вызовом WdfDeviceCreate для создания объекта WDFDEVICE.

По умолчанию для драйверов WDF драйвер функции устройства является владельцем политики питания.

В следующем фрагменте кода показано, как вызывать 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
    //
    
    ...

}

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 10
целевая платформа Виндоус
заголовка ufxclient.h
библиотеки ufxstub.lib
IRQL PASSIVE_LEVEL