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 |