Функция 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 |