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 controladores UMDF nuevos deben escribirse con 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 con 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 con tipo WDF_PNP_STATE que identifica la propiedad PnP que se va a establecer.

[in] Value

Valor WDF_TRI_STATE con tipo que identifica cómo establecer la propiedad PnP que Especifica State . 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

None

Observaciones

Antes de que el estado de la propiedad PnP que establezca SetPnpState 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 Value
Finalización del soporte técnico No disponible en UMDF 2.0 y versiones posteriores.
Plataforma de destino Escritorio
Versión mínima de UMDF 1.5
Encabezado wudfddi.h (incluya Wudfddi.h)
Archivo DLL WUDFx.dll

Consulte también

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE