Partager via


IWDFDevice ::SetPnpState, méthode (wudfddi.h)

[Avertissement : UMDF 2 est la dernière version d’UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide d’UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et la prise en charge d’UMDF 1 est limitée sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Prise en main avec UMDF.]

La méthode SetPnpState active ou désactive (ou définit l’état par défaut) la propriété Plug-and-Play (PnP) spécifiée d’un appareil.

Syntaxe

void SetPnpState(
  [in] WDF_PNP_STATE State,
  [in] WDF_TRI_STATE Value
);

Paramètres

[in] State

Valeur WDF_PNP_STATE typée qui identifie la propriété PnP à définir.

[in] Value

Valeur de type WDF_TRI_STATE qui identifie comment définir la propriété PnP spécifiée par State . Le tableau suivant présente les valeurs possibles pour Value.

Valeur Signification
WdfUseDefault (0) Définissez la propriété PnP sur l’état par défaut.
WdfFalse (1) Désactivez la propriété PnP.
WdfTrue (2) Activez la propriété PnP.

Valeur de retour

None

Remarques

Avant que l’état de la propriété PnP définie par SetPnpState puisse prendre effet, le pilote doit appeler la méthode IWDFDevice ::CommitPnpState .

Exemples

L’exemple de code suivant montre comment indiquer qu’un appareil a échoué à la suite d’une demande.

VOID
CUmdfHidDevice::OnCompletion(
    __in IWDFIoRequest* WdfRequest,
    __in IWDFIoTarget* /* WdfTarget */,
    __in IWDFRequestCompletionParams* WdfCompletionParams,
    __in PVOID /* Context */
    )
{
    ULONG_PTR bytesRead;

 if (!SUCCEEDED(WdfCompletionParams->GetCompletionStatus()))
    {
        m_WdfDevice->SetPnpState(WdfPnpStateFailed, WdfTrue);
        m_WdfDevice->CommitPnpState();
        return;
    }

    // Lock the device to prevent files from closing.
    m_WdfDevice->AcquireLock();

    // Retrieve the number of bytes that were read.
    bytesRead = WdfCompletionParams->GetInformation();

    // Process the reports.
    ProcessInputReports((PBYTE) m_ReadMemory->GetDataBuffer(NULL), bytesRead);

    m_WdfDevice->ReleaseLock();

    // Release the request.
    m_InterruptReadRequest = NULL;
    WdfRequest->DeleteWdfObject();

    // Send a new request.
    SendInterruptPipeRead();
}

Configuration requise

Condition requise Valeur
Fin de la prise en charge Non disponible dans UMDF 2.0 et versions ultérieures.
Plateforme cible Desktop (Expérience utilisateur)
Version UMDF minimale 1.5
En-tête wudfddi.h (inclure Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFDevice

IWDFDevice ::CommitPnpState

IWDFDevice ::GetPnpState

WDF_PNP_STATE