Condividi tramite


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

Vedi anche

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE