Partager via


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

[Avertissement : UMDF 2 est la dernière version de UMDF et remplace UMDF 1. Tous les nouveaux pilotes UMDF doivent être écrits à l’aide de UMDF 2. Aucune nouvelle fonctionnalité n’est ajoutée à UMDF 1 et il existe une prise en charge limitée de UMDF 1 sur les versions plus récentes de Windows 10. Les pilotes Windows universels doivent utiliser UMDF 2. Pour plus d’informations, consultez Bien démarrer 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 WDF_TRI_STATE typée qui identifie comment définir la propriété PnP qui State spécifie. Le tableau suivant présente les valeurs possibles pour valeur.

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

Aucun

Remarques

Avant que l’état de la propriété PnP SetPnpState set 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();
}

Exigences

Exigence Valeur
fin du support Indisponible dans UMDF 2.0 et versions ultérieures.
plateforme cible Bureau
version minimale de UMDF 1.5
d’en-tête wudfddi.h (include Wudfddi.h)
DLL WUDFx.dll

Voir aussi

IWDFDevice

IWDFDevice ::CommitPnpState

IWDFDevice ::GetPnpState

WDF_PNP_STATE