IStiUSD::Inisialisasi metode (stiusd.h)
Metode IStiUSD::Initialize minidriver gambar masih menginisialisasi instans objek COM yang menentukan antarmuka IStiUSD .
Sintaks
HRESULT Initialize(
PSTIDEVICECONTROL pHelDcb,
DWORD dwStiVersion,
HKEY hParametersKey
);
Parameter
pHelDcb
Penunjuk yang disediakan penelepon ke Antarmuka COM IStiDeviceControl.
dwStiVersion
Nomor versi STI yang disediakan penelepon. Nilai ini ditentukan oleh STI_VERSION dalam Sti.h.
hParametersKey
Handel yang disediakan penelepon ke kunci registri tempat informasi khusus perangkat disimpan.
Nilai kembali
Jika operasi berhasil, metode harus mengembalikan S_OK. Jika tidak, itu harus mengembalikan salah satu kode kesalahan awalan STIERR yang ditentukan dalam stierr.h.
Keterangan
Metode IStiUSD::Initialize , yang diekspor oleh minidriver gambar diam, adalah metode IStiUSD pertama yang dipanggil setelah minidriver dimuat. Metode harus menginisialisasi pengandar dan perangkat.
Metode ini harus menyimpan penunjuk Antarmuka IStiDeviceControl COM yang diterima, dan harus memanggil metode IStiDeviceControl::AddRef antarmuka tersebut.
Untuk perangkat yang terhubung ke port khusus (seperti perangkat SCSI), metode ini biasanya membuat jalur baca/tulis ke perangkat dengan memanggil CreateFile (dijelaskan dalam dokumentasi Microsoft Windows SDK), menggunakan nama port perangkat yang diperoleh dengan memanggil IStiDeviceControl::GetMyDevicePortName.
Untuk perangkat pada port bersama (seperti perangkat port serial), membuka port di metode IStiUSD::Initialize tidak disarankan, karena akses ke perangkat lain pada port akan dikunci. Untuk perangkat tersebut, lebih baik memanggil CreateFile dari dalam metode IStiUSD::LockDevice .
Jika perangkat yang dibuka adalah salah satu di mana beberapa panggilan ke CreateFile tidak diizinkan (seperti perangkat yang terhubung ke port serial), driver biasanya tidak memanggil CreateFile kecuali pemanggil telah membuka perangkat untuk transfer data, seperti yang diilustrasikan dalam CodeExample berikut.
Metode IStiUSD::Initialize harus memvalidasi nomor versi STI yang diterima dan mengembalikan kesalahan jika versi yang diterima tidak cocok dengan versi driver.
Contoh berikut membuka port perangkat hanya jika panggilan ke IStiDeviceControl::GetMyDeviceOpenMode menunjukkan bahwa aplikasi telah membuka perangkat untuk transfer data. Kode tersebut mungkin digunakan untuk perangkat yang tidak dapat mendukung beberapa panggilan CreateFile , seperti perangkat port serial.
Contoh
STDMETHODIMP MyUSDDevice::Initialize(
PSTIDEVICECONTROL pDcb,
DWORD dwStiVersion,
HKEY hParametersKey)
{
HRESULT hres = STI_OK;
DWORD dwMode = 0;
if (!pDcb)
{
hres = STIERR_INVALID_PARAM;
}
else
{
// Store IStiDeviceControl object pointer
m_pDcb = pDcb;
m_pDcb->AddRef();
// If we opened in data mode - should open device right now,
// otherwise postpone open till lock
m_pDcb->GetMyDeviceOpenMode(&dwMode);
if (dwMode & STI_DEVICE_CREATE_DATA)
hres = OpenMyPort();
}
return hres;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Desktop |
Header | stiusd.h (termasuk Stiusd.h) |
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