Metode IWDFFileHandleTargetFactory::CreateFileHandleTarget (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 CreateFileHandleTarget membuat objek target I/O berbasis handel file.
Sintaks
HRESULT CreateFileHandleTarget(
[in] HANDLE hTarget,
[out] IWDFIoTarget **ppTarget
);
Parameter
[in] hTarget
Handel ke perangkat target. Handel sebelumnya harus dibuka dengan bendera FILE_FLAG_OVERLAPPED. Misalnya, FILE_FLAG_OVERLAPPED harus ditentukan dalam parameter dwFlagsAndAttributes dari fungsi Microsoft Win32 CreateFile .
[out] ppTarget
Pointer ke lokasi yang menerima pointer ke antarmuka IWDFIoTarget dari objek target I/O.
Nilai kembali
CreateFileHandleTarget mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
CreateFileHandleTarget berhasil membuat objek target I/O berbasis handel file. |
|
CreateFileHandleTarget mengalami kegagalan alokasi. |
CreateFileHandleTarget mungkin juga mengembalikan nilai HRESULT lainnya yang ditentukan dalam Winerror.h.
Keterangan
Jika driver Anda menggunakan target I/O berbasis handel file, bagian DDInstall.WDF dari file INF driver harus mengatur arahan UmdfDispatcher ke FileHandle. Untuk informasi selengkapnya tentang UmdfDispatcher, lihat Menentukan Arahan WDF.
Setelah driver membuat objek target I/O berbasis handel file, driver dapat memformat permintaan I/O dan mengirimkannya ke target I/O. Biasanya, jika driver memanggil IWDFIoTarget::FormatRequestForRead, IWDFIoTarget::FormatRequestForWrite, atau IWDFIoTarget::FormatRequestForIoctl, driver mengatur parameter pFile ke NULL. NULL menyebabkan kerangka kerja menggunakan nama file yang ditentukan driver ke CreateFileHandleTarget. Jika driver menyediakan parameter pFilenon-NULL, file yang ditentukan menggantikan file yang ditentukan driver ke CreateFileHandleTarget. (Driver juga dapat memanggil IWDFIoRequest::FormatUsingCurrentType untuk memformat permintaan I/O.)
Ketika driver memanggil IWDFIoRequest::Send untuk mengirim permintaan I/O ke target I/O, driver tidak boleh mengatur nilai WDF_REQUEST_SEND_OPTION_SEND_AND_FORGET dalam parameter Flags .
Handel Win32 yang diteruskan driver ke CreateFileHandleTarget harus tetap valid selama masa pakai objek target I/O berbasis handel file. (Kerangka kerja tidak mengambil referensi pada handel target ini, jadi driver Anda harus memastikan bahwa handel Win32 tetap valid.)
Setelah driver selesai menggunakan antarmuka IWDFIoTarget yang disediakan CreateFileHandleTarget , driver harus merilis antarmuka IWDFIoTarget .
Untuk informasi selengkapnya tentang target CreateFileHandleTarget dan I/O, lihat Menginisialisasi Target I/O Umum di UMDF.
Contoh
Contoh kode berikut menunjukkan cara membuat target I/O berbasis handel file untuk pipa bernama. Dalam contoh ini, m_FxDevice adalah penunjuk antarmuka yang disediakan IWDFDriver::CreateDevice .
HRESULT hr = S_OK;
CComPtr<IWDFFileHandleTargetFactory> pFileHandleTargetFactory;
//
// Create a pipe and get the handle.
//
m_WriteHandle = CreateNamedPipe(NP_NAME,
PIPE_ACCESS_DUPLEX|FILE_FLAG_OVERLAPPED,
PIPE_TYPE_MESSAGE|PIPE_READMODE_MESSAGE|PIPE_WAIT,
2,
MAX_TRANSFER_SIZE,
MAX_TRANSFER_SIZE,
1000,
NULL);
if (m_WriteHandle == INVALID_HANDLE_VALUE) {
DWORD err = GetLastError();
hr = HRESULT_FROM_WIN32(err);
}
//
// Obtain the IWDFFileHandleTargetFactory interface
// by calling IWDFDevice::QueryInterface.
//
if (SUCCEEDED(hr)) {
hr = m_FxDevice->QueryInterface(IID_PPV_ARGS(&pFileHandleTargetFactory));
}
//
// Create a file handle target.
//
if (SUCCEEDED(hr)) {
hr = pFileHandleTargetFactory->CreateFileHandleTarget(m_WriteHandle,
&m_WriteTarget);
}
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 Wudfusb.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