Compartir a través de


Método IWDFDevice::SetPnpState (wudfddi.h)

[Advertencia: UMDF 2 es la versión más reciente de UMDF y sustituye a UMDF 1. Todos los nuevos controladores UMDF deben escribirse mediante UMDF 2. No se agregan nuevas características a UMDF 1 y hay compatibilidad limitada con UMDF 1 en versiones más recientes de Windows 10. Los controladores universales de Windows deben usar UMDF 2. Para obtener más información, consulta Introducción a UMDF.]

El método SetPnpState activa o desactiva (o establece en el estado predeterminado) la propiedad Plug and Play (PnP) especificada de un dispositivo.

Sintaxis

void SetPnpState(
  [in] WDF_PNP_STATE State,
  [in] WDF_TRI_STATE Value
);

Parámetros

[in] State

Valor de tipo WDF_PNP_STATEque identifica la propiedad PnP que se va a establecer.

[in] Value

Valor con tipo WDF_TRI_STATE que identifica cómo establecer la propiedad PnP que State especifica. En la tabla siguiente se muestran los valores posibles para Value.

Valor Significado
WdfUseDefault (0) Establezca la propiedad PnP en el estado predeterminado.
WdfFalse (1) Desactive la propiedad PnP.
WdfTrue (2) Active la propiedad PnP.

Valor devuelto

Ninguno

Observaciones

Antes de que el estado de la propiedad PnP que setPnpState set pueda surtir efecto, el controlador debe llamar al método IWDFDevice::CommitPnpState.

Ejemplos

En el ejemplo de código siguiente se muestra cómo indicar que se produjo un error en un dispositivo como resultado de una solicitud.

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();
}

Requisitos

Requisito Valor
fin del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
de la plataforma de destino de Escritorio
versión mínima de UMDF 1.5
encabezado de wudfddi.h (incluya Wudfddi.h)
DLL de WUDFx.dll

Consulte también

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE