Metode IWDFDevice::SetPnpState (wudfddi.h)

[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]

Metode SetPnpState mengaktifkan atau menonaktifkan (atau mengatur ke status default) properti Plug and Play (PnP) yang ditentukan dari perangkat.

Sintaks

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

Parameter

[in] State

Nilai jenis WDF_PNP_STATE yang mengidentifikasi properti PnP untuk diatur.

[in] Value

Nilai WDF_TRI_STATE-ketik yang mengidentifikasi cara mengatur properti PnP yang ditentukan Status . Tabel berikut ini memperlihatkan nilai yang mungkin untuk Nilai.

Nilai Makna
WdfUseDefault (0) Atur properti PnP ke status default.
WdfFalse (1) Matikan properti PnP.
WdfTrue (2) Aktifkan properti PnP.

Nilai kembali

Tidak ada

Keterangan

Sebelum status properti PnP yang ditetapkan SetPnpState dapat berlaku, driver harus memanggil metode IWDFDevice::CommitPnpState .

Contoh

Contoh kode berikut menunjukkan cara menunjukkan bahwa perangkat gagal sebagai hasil dari permintaan.

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

Persyaratan

Persyaratan Nilai
Akhir dukungan Tidak tersedia di UMDF 2.0 dan yang lebih baru.
Target Platform Desktop
Versi UMDF minimum 1,5
Header wudfddi.h (termasuk Wudfddi.h)
DLL WUDFx.dll

Lihat juga

IWDFDevice

IWDFDevice::CommitPnpState

IWDFDevice::GetPnpState

WDF_PNP_STATE