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 |