IWDFIoTargetStateManagement::Metode mulai (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 Mulai mulai mengirim permintaan antrean ke target I/O lokal.
Sintaks
HRESULT Start();
Mengembalikan nilai
Mulai mengembalikan S_OK jika operasi berhasil. Jika tidak, metode ini mungkin mengembalikan salah satu kode kesalahan:
Menampilkan kode | Deskripsi |
---|---|
|
Perangkat telah dihapus. |
Metode ini mungkin mengembalikan salah satu kode kesalahan lain yang ditentukan Winerror.h.
Keterangan
Jika driver Anda dapat mendeteksi kesalahan perangkat yang dapat dipulihkan, Anda mungkin ingin driver Anda memanggil IWDFIoTargetStateManagement::Stop untuk sementara berhenti mengirim permintaan ke target I/O lokal, lalu panggil Mulai untuk melanjutkan pengiriman permintaan.
Selain itu, jika driver memanggil IWDFUsbTargetPipe2::ConfigureContinuousReader untuk mengonfigurasi pembaca berkelanjutan untuk pipa USB, fungsi panggilan balik IPnpCallback::OnD0Entry driver harus memanggil Mulai untuk memulai pembaca.
Driver Anda harus memanggil Start dan IWDFIoTargetStateManagement::Stop secara sinkron. Setelah driver memanggil salah satu fungsi ini, driver tidak boleh memanggil fungsi lain sebelum yang pertama kembali.
Untuk informasi selengkapnya tentang Mulai, lihat Mengontrol Status Target I/O Umum di UMDF.
Untuk informasi selengkapnya tentang target I/O, lihat Menggunakan Target I/O di UMDF.
Contoh
Contoh kode berikut pertama-tama menunjukkan bagaimana driver dapat memperoleh antarmuka IWDFIoTargetStateManagement untuk objek pipa USB. Contoh kode kemudian menunjukkan bagaimana fungsi panggilan balik IPnpCallback::OnD0Entry dapat memanggil Mulai, jika driver menggunakan pembaca berkelanjutan untuk pipa USB.
IWDFIoTargetStateManagement * m_pIoTargetInterruptPipeStateMgmt = NULL;
IWDFUsbTargetFactory * pIUsbTargetFactory = NULL;
IWDFUsbTargetDevice * pIUsbTargetDevice = NULL;
IWDFUsbInterface * pIUsbInterface = NULL;
IWDFUsbTargetPipe * pIUsbPipe = NULL;
hr = m_FxDevice->QueryInterface(IID_PPV_ARGS(&pIUsbTargetFactory));
if (FAILED(hr))
{...}
hr = pIUsbTargetFactory->CreateUsbTargetDevice(&pIUsbTargetDevice);
if (FAILED(hr))
{...}
hr = pIUsbTargetDevice->RetrieveUsbInterface(0, &pIUsbInterface);
if (FAILED(hr))
{...}
NumEndPoints = pIUsbInterface->GetNumEndPoints();
for (UCHAR PipeIndex = 0; PipeIndex < NumEndPoints; PipeIndex++)
{
hr = pIUsbInterface->RetrieveUsbPipeObject(PipeIndex, &pIUsbPipe);
if (FAILED(hr))
{...}
else
{
if (pIUsbPipe->IsInEndPoint())
{
if (UsbdPipeTypeInterrupt == pIUsbPipe->GetType())
{
m_pIUsbInterruptPipe = pIUsbPipe;
hr = m_pIUsbInterruptPipe->QueryInterface(IID_PPV_ARGS(&m_pIoTargetInterruptPipeStateMgmt));
if (FAILED(hr))
{...}
}
}
}
}
HRESULT
CMyDevice::OnD0Entry(
__in IWDFDevice* pWdfDevice,
__in WDF_POWER_DEVICE_STATE previousState
)
{
...
m_pIoTargetInterruptPipeStateMgmt->Start();
...
return S_OK;
}
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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk