Bagikan melalui


IWDFIoTargetStateManagement::Stop method (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 Hentikan berhenti mengirim permintaan yang diantrekan ke target I/O lokal.

Sintaks

HRESULT Stop(
  [in] WDF_IO_TARGET_SENT_IO_ACTION Action
);

Parameter

[in] Action

Nilai jenis WDF_IO_TARGET_SENT_IO_ACTION yang mengidentifikasi cara menangani I/O terkirim saat objek target I/O dihentikan.

Nilai kembali

Stop selalu mengembalikan S_OK.

Keterangan

Jika driver Anda dapat mendeteksi kesalahan perangkat yang dapat dipulihkan, Anda mungkin ingin driver Anda memanggil Berhenti untuk menghentikan sementara pengiriman permintaan ke target I/O lokal, kemudian panggil IWDFIoTargetStateManagement::Mulai untuk melanjutkan pengiriman permintaan.

Selain itu, jika driver memanggil IWDFUsbTargetPipe2::ConfigureContinuousReader untuk mengonfigurasi pembaca berkelanjutan untuk pipa USB, fungsi panggilan balik IPnpCallback::OnD0Exit driver harus memanggil Berhenti untuk menghentikan pembaca.

Jika driver telah memanggil Stop, driver masih dapat mengirim permintaan ke target dengan mengatur bendera WDF_REQUEST_OPTION_IGNORE_TARGET_STATE saat memanggil IWDFIoRequest::Send. Jika driver mengatur bendera ini, driver dapat mengirim permintaan, seperti permintaan untuk mengatur ulang pipa USB (lihat IWDFUsbTargetPipe::Reset), ke perangkat setelah driver memanggil Berhenti.

Driver Anda harus memanggil IWDFIoTargetStateManagement::Start dan Stop secara sinkron. Setelah driver memanggil salah satu fungsi ini, driver tidak boleh memanggil salah satu fungsi sebelum panggilan pertama kembali.

Driver Anda dapat memanggil Berhenti beberapa kali tanpa memanggil IWDFIoTargetStateManagement::Start. Misalnya, driver Anda mungkin melakukan hal berikut:

  1. Panggil Hentikan dan tentukan nilai TindakanWdfIoTargetLeaveSentIoPending.
  2. Tentukan apakah target harus melanjutkan pemrosesan permintaan I/O.
  3. Jika target harus dilanjutkan, panggil IWDFIoTargetStateManagement::Start. Jika tidak, panggil Hentikan lagi dengan nilai TindakanWdfIoTargetCancelSentIo.
Untuk informasi selengkapnya tentang Berhenti, lihat Mengontrol Status Target I/O Umum.

Untuk informasi selengkapnya tentang target I/O, lihat Menggunakan Target I/O.

Contoh

Contoh kode berikut menunjukkan bagaimana fungsi panggilan balik IPnpCallback::OnD0Exit dapat memanggil Berhenti, jika driver menggunakan pembaca berkelanjutan untuk pipa USB. (Untuk melihat cara mendapatkan antarmuka IWDFIoTargetStateManagement , lihat contoh kode di IWDFIoTargetStateManagement::Start.)

HRESULT
CMyDevice::OnD0Exit(
    __in IWDFDevice*  pWdfDevice,
    __in WDF_POWER_DEVICE_STATE  previousState
    )
{
    HRESULT hr;
    hr = m_pIoTargetInterruptPipeStateMgmt->Stop(WdfIoTargetCancelSentIo);
    return hr;
}

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

IWDFIoTargetStateManagement

IWDFRemoteTarget::Stop