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. Non vengono aggiunte nuove funzionalità 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, vedi Introduzione a 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_STATEtipizzato che identifica la proprietà PnP da impostare.

[in] Value

Valore WDF_TRI_STATE tipizzato che identifica come impostare la proprietà PnP specificata State. Nella tabella seguente vengono illustrati 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 che lo stato della proprietà PnP che SetPnpState set possa essere applicato, il driver deve chiamare il metodo IWDFDevice::CommitPnpState.

Esempi

L'esempio di codice seguente mostra 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();
}

Fabbisogno

Requisito Valore
Fine del supporto Non disponibile in UMDF 2.0 e versioni successive.
piattaforma di destinazione Desktop
versione minima di UMDF 1.5
intestazione wudfddi.h (include Wudfddi.h)
dll WUDFx.dll

Vedere anche

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE