USBFN_SET_DEVICE_STATE fonction de rappel (usbfnattach.h)

Implémentation du pilote de filtre pour définir l’état de l’appareil et la vitesse de fonctionnement du bus.

Syntaxe

USBFN_SET_DEVICE_STATE UsbfnSetDeviceState;

NTSTATUS UsbfnSetDeviceState(
  [in] PVOID Context,
  [in] USBFN_DEVICE_STATE DeviceState,
  [in] USBFN_BUS_SPEED BusSpeed
)
{...}

Paramètres

[in] Context

Pointeur vers un contexte défini par le pilote.

[in] DeviceState

Indicateur de type USBFN_DEVICE_STATE qui indique l’état de l’appareil.

[in] BusSpeed

Indicateur de type USBFN_BUS_SPEED qui indique la vitesse du bus.

Valeur retournée

Si l’opération réussit, la fonction de rappel doit retourner STATUS_SUCCESS ou une autre valeur status pour laquelle NT_SUCCESS(status) est égal à TRUE. Sinon, il doit retourner une valeur status pour laquelle NT_SUCCESS(status) est false.

Remarques

Pour prendre en charge la détection d’attachement et de décatch, le pilote de filtre inférieur USB doit publier sa prise en charge. Pendant le processus de publication, le pilote enregistre également son implémentation de cette fonction de rappel. Pour plus d’informations, consultez Pilote de filtre USB pour la prise en charge des chargeurs propriétaires.

Le pilote de filtre inférieur peut implémenter une fonction de rappel USBFN_SET_DEVICE_STATE même s’il nécessite une notification des changements d’état de l’appareil pour configurer correctement la charge lorsqu’il est attaché à un hôte, ou dans des scénarios de laboratoire où la charge via USB doit être désactivée.

Exemples

NTSTATUS
UsbLowerFilter_SetDeviceState(
    _In_ PVOID Context,
    _In_ USBFN_DEVICE_STATE DeviceState,
    _In_ USBFN_BUS_SPEED BusSpeed
    )
{
    PPDCP_CONTEXT PdcpContext = NULL;

    PAGED_CODE();

    // Get our context
    PdcpContext = DeviceGetUsbLowerFilterContext((WDFDEVICE)Context);

    PdcpContext->CurrentDeviceState = DeviceState;
    PdcpContext->BusSpeed = BusSpeed;

    return STATUS_SUCCESS;
}

Configuration requise

Condition requise Valeur
Plateforme cible Windows
Version KMDF minimale 1.0
Version UMDF minimale 2.0
En-tête usbfnattach.h
IRQL PASSIVE_LEVEL

Voir aussi

Pilote de filtre USB pour la prise en charge des chargeurs propriétaires