Partager via


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 du bus d’exploitation.

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 USBFN_DEVICE_STATE-typé qui indique l’état de l’appareil.

[in] BusSpeed

Indicateur USBFN_BUS_SPEED-typé qui indique la vitesse du bus.

Valeur de retour

Si l’opération réussit, la fonction de rappel doit retourner STATUS_SUCCESS, ou une autre valeur d’état pour laquelle NT_SUCCESS(status) a la valeur TRUE. Sinon, il doit retourner une valeur d’état pour laquelle NT_SUCCESS(status) a la valeur FALSE.

Remarques

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

Le pilote de filtre inférieur peut implémenter une fonction de rappel USBFN_SET_DEVICE_STATE même si elle nécessite la notification des modifications d’état de l’appareil pour configurer correctement la charge lorsqu’elle est attachée à un hôte, ou dans les 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;
}

Exigences

Exigence Valeur
plateforme cible Windows
version minimale de KMDF 1.0
version minimale de UMDF 2.0
d’en-tête usbfnattach.h
IRQL PASSIVE_LEVEL

Voir aussi

pilote de filtre USB pour prendre en charge les chargeurs propriétaires