Partager via


UfxFdoInit, fonction (ufxclient.h)

Initialise la structure WDFDEVICE_INIT que le pilote client fournit par la suite lorsqu’il appelle WdfDeviceCreate.

Syntaxe

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

Paramètres

[in] WdfDriver

Handle de l’objet de pilote WDF du pilote que le pilote a obtenu à partir d’un appel précédent à WdfDriverCreate ou WdfGetDriver.

[in, out] DeviceInit

Pointeur vers une structure WDFDEVICE_INIT.

[in, out] FdoAttributes

Pointeur vers une structure WDF_OBJECT_ATTRIBUTES allouée par l’appelant qui décrit les attributs d’objet pour le

Valeur de retour

Si l’opération réussit, la méthode retourne STATUS_SUCCESS, ou une autre valeur d’état pour laquelle NT_SUCCESS(status) a la valeur TRUE. Sinon, elle retourne une valeur d’état pour laquelle NT_SUCCESS(status) a la valeur FALSE.

Remarques

Le pilote client reçoit un pointeur vers une structure de WDFDEVICE_INIT allouée au framework dans sa fonction de rappel EvtDriverDeviceAdd. Il appelle ensuite UfxFdoInit avec ce pointeur avant d’appeler WdfDeviceCreate pour créer l’objet WDFDEVICE.

Par défaut, pour les pilotes WDF, le pilote de fonction de l’appareil est le propriétaire de la stratégie d’alimentation.

L’extrait de code suivant montre comment appeler 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
    //
    
    ...

}

Exigences

Exigence Valeur
client minimum pris en charge Windows 10
plateforme cible Windows
d’en-tête ufxclient.h
bibliothèque ufxstub.lib
IRQL PASSIVE_LEVEL