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