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

Confira também

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE