Share via


Función UfxFdoInit (ufxclient.h)

Inicializa la estructura de WDFDEVICE_INIT que el controlador cliente proporciona posteriormente cuando llama a WdfDeviceCreate.

Sintaxis

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

Parámetros

[in] WdfDriver

Identificador del objeto de controlador WDF del controlador que obtuvo el controlador de una llamada anterior a WdfDriverCreate o WdfGetDriver.

[in, out] DeviceInit

Puntero a una estructura de WDFDEVICE_INIT .

[in, out] FdoAttributes

Puntero a una estructura de WDF_OBJECT_ATTRIBUTES asignada por el autor de la llamada que describe los atributos de objeto de .

Valor devuelto

Si la operación se realiza correctamente, el método devuelve STATUS_SUCCESS u otro valor de estado para el que NT_SUCCESS(status) es igual a TRUE. De lo contrario, devuelve un valor de estado para el que NT_SUCCESS(status) es igual a FALSE.

Comentarios

El controlador cliente recibe un puntero a una estructura de WDFDEVICE_INIT asignada por el marco en su función de devolución de llamada EvtDriverDeviceAdd . A continuación, llama a UfxFdoInit con este puntero antes de llamar a WdfDeviceCreate para crear el objeto WDFDEVICE.

De forma predeterminada, para los controladores WDF, el controlador de función del dispositivo es el propietario de la directiva de energía.

El siguiente fragmento de código muestra cómo llamar a 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 Value
Cliente mínimo compatible Windows 10
Plataforma de destino Windows
Encabezado ufxclient.h
Library ufxstub.lib
IRQL PASSIVE_LEVEL