PPARALLEL_TRY_SELECT_ROUTINE fungsi panggilan balik (parallel.h)

Rutinitas panggilan balik jenis PPARALLEL_TRY_SELECT_ROUTINE memilih perangkat rantai daisy IEEE 1284.3 atau perangkat end-of-chain IEEE 1284 yang dilampirkan ke port paralel. Driver fungsi yang disediakan sistem untuk port paralel memasok rutinitas ini.

Sintaks

PPARALLEL_TRY_SELECT_ROUTINE PparallelTrySelectRoutine;

NTSTATUS PparallelTrySelectRoutine(
  [in] PVOID TrySelectContext,
  [in] PVOID TrySelectCommand
)
{...}

Parameter

[in] TrySelectContext

Penunjuk ke ekstensi perangkat dari objek perangkat fungsional port paralel (FDO).

[in] TrySelectCommand

Penunjuk ke struktur PARALLEL_1284_COMMAND . Pemanggil menentukan anggota berikut:

ID

Menentukan ID perangkat 1284.3.

CommandFlags

Menentukan bitwise OR dari nol atau beberapa bendera berikut:

Nilai Deskripsi
PAR_END_OF_CHAIN_DEVICE Menentukan perangkat akhir rantai.
PAR_HAVE_PORT_KEEP_PORT Menentukan bahwa pemanggil memiliki port yang dialokasikan dan untuk menjaga port dialokasikan.

Nilai kembali

Menampilkan kode Deskripsi
STATUS_SUCCESS
Perangkat dipilih.
STATUS_INVALID_PARAMETER
ID perangkat tidak valid.
STATUS_PENDING
Pemanggil tidak menentukan PAR_HAVE_PORT_KEEP_PORT, dan port paralel sudah dialokasikan.
STATUS_UNSUCCESSFUL
Pemanggil telah mengalokasikan port paralel, tetapi driver fungsi yang disediakan sistem untuk port paralel tidak dapat memilih perangkat paralel yang ditentukan.

Keterangan

Untuk mendapatkan penunjuk ke panggilan balik PPARALLEL_TRY_SELECT_ROUTINE yang disediakan sistem, driver mode kernel menggunakan permintaan IOCTL_INTERNAL_GET_PARALLEL_PNP_INFO , yang mengembalikan struktur PARALLEL_PNP_INFORMATION . Anggota TrySelectDevice dari struktur PARALLEL_PNP_INFORMATION adalah penunjuk ke panggilan balik ini.

Driver mode kernel dapat menggunakan permintaan IOCTL_INTERNAL_SELECT_DEVICE atau panggilan balik PPARALLEL_TRY_SELECT_ROUTINE untuk memilih perangkat paralel pada port paralel. Driver fungsi port paralel mengantre permintaan pilih jika port paralel sudah dialokasikan. Namun, panggilan balik PPARALLEL_TRY_SELECT_ROUTINE tidak mengantre permintaan pilih, dan rutinitas segera kembali jika port tidak dapat dialokasikan.

Catatan Jika klien hanya menggunakan panggilan balik PPARALLEL_TRY_SELECT_ROUTINE untuk mencoba memilih perangkat paralel, dan klien lain bersaing untuk port paralel, driver fungsi yang disediakan sistem untuk port paralel mungkin tidak pernah mengalokasikan port ke klien. Untuk memastikan keberhasilan, klien harus menggunakan permintaan IOCTL_INTERNAL_SELECT_DEVICE . (Antrean driver fungsi port paralel, dan kemudian memproses, port mengalokasikan permintaan dan permintaan pilih perangkat dalam urutan di mana permintaan perangkat tertentu diterima.)
 
Untuk informasi selengkapnya, lihat Memilih dan Membatalkan Pilihan Perangkat IEEE 1284 yang Dilampirkan ke ParallelPort.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header parallel.h (termasuk Parallel.h)
IRQL <=DISPATCH_LEVEL

Lihat juga

PARALLEL_1284_COMMAND

IOCTL_INTERNAL_GET_PARALLEL_PORT_INFO

IOCTL_INTERNAL_SELECT_DEVICE

IOCTL_INTERNAL_DESELECT_DEVICE

PARALLEL_PNP_INFORMATION

PPARALLEL_DESELECT_ROUTINE