Método IWDFDevice::SetPnpState (wudfddi.h)
[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Drivers universais do Windows devem usar UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]
O método SetPnpState ativa ou desativa (ou define como o estado padrão) a propriedade de Plug and Play (PnP) especificada de um dispositivo.
Sintaxe
void SetPnpState(
[in] WDF_PNP_STATE State,
[in] WDF_TRI_STATE Value
);
Parâmetros
[in] State
Um valor do tipo WDF_PNP_STATE que identifica a propriedade PnP a ser definida.
[in] Value
Um valor de tipo WDF_TRI_STATE que identifica como definir a propriedade PnP especificada por State . A tabela a seguir mostra os valores possíveis para Value.
Valor | Significado |
---|---|
WdfUseDefault (0) | Defina a propriedade PnP como o estado padrão. |
WdfFalse (1) | Desative a propriedade PnP. |
WdfTrue (2) | Ative a propriedade PnP. |
Retornar valor
Nenhum
Comentários
Antes que o estado da propriedade PnP definida por SetPnpState possa entrar em vigor, o driver deve chamar o método IWDFDevice::CommitPnpState .
Exemplos
O exemplo de código a seguir mostra como indicar que um dispositivo falhou como resultado de uma solicitação.
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 |
---|---|
Fim do suporte | Indisponível no UMDF 2.0 e posterior. |
Plataforma de Destino | Área de Trabalho |
Versão mínima do UMDF | 1.5 |
Cabeçalho | wudfddi.h (include Wudfddi.h) |
DLL | WUDFx.dll |