Metodo IWDFDevice::SetPnpState (wudfddi.h)
[Avviso: UMDF 2 è la versione più recente di UMDF e sostituisce UMDF 1. Tutti i nuovi driver UMDF devono essere scritti usando UMDF 2. Nessuna nuova funzionalità viene aggiunta a UMDF 1 ed è disponibile un supporto limitato per UMDF 1 nelle versioni più recenti di Windows 10. I driver di Windows universali devono usare UMDF 2. Per altre informazioni, vedere Introduzione con UMDF.]
Il metodo SetPnpState attiva o disattiva (o imposta sullo stato predefinito) la proprietà Plug and Play (PnP) specificata di un dispositivo.
Sintassi
void SetPnpState(
[in] WDF_PNP_STATE State,
[in] WDF_TRI_STATE Value
);
Parametri
[in] State
Valore WDF_PNP_STATE tipizzato che identifica la proprietà PnP da impostare.
[in] Value
Valore WDF_TRI_STATE tipizzato che identifica come impostare la proprietà PnP specificata da State . La tabella seguente mostra i valori possibili per Value.
Valore | Significato |
---|---|
WdfUseDefault (0) | Impostare la proprietà PnP sullo stato predefinito. |
WdfFalse (1) | Disattivare la proprietà PnP. |
WdfTrue (2) | Attivare la proprietà PnP. |
Valore restituito
nessuno
Osservazioni
Prima dello stato della proprietà PnP impostata su SetPnpState può essere effettiva, il driver deve chiamare il metodo IWDFDevice::CommitPnpState .
Esempio
Nell'esempio di codice seguente viene illustrato come indicare che un dispositivo non è riuscito come risultato di una richiesta.
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();
}
Requisiti
Requisito | Valore |
---|---|
Fine del supporto | Non disponibile in UMDF 2.0 e versioni successive. |
Piattaforma di destinazione | Desktop |
Versione UMDF minima | 1.5 |
Intestazione | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |