Функция 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(status) равно TRUE. В противном случае возвращается значение состояния, для которого NT_SUCCESS(status) равно 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
Целевая платформа Windows
Header ufxclient.h
Библиотека ufxstub.lib
IRQL PASSIVE_LEVEL