PPARALLEL_WRITE función de devolución de llamada (parallel.h)
La rutina de devolución de llamada con tipo PPARALLEL_WRITE escribe datos en un dispositivo paralelo. El controlador de bus suministrado por el sistema para puertos paralelos proporciona esta rutina.
Sintaxis
PPARALLEL_WRITE PparallelWrite;
NTSTATUS PparallelWrite(
[in] PVOID Context,
[in] PVOID Buffer,
[in] ULONG NumBytesToWrite,
[out] PULONG NumBytesWritten,
[in] UCHAR Channel
)
{...}
Parámetros
[in] Context
Puntero a la extensión de dispositivo de un objeto de dispositivo físico (PDO) de un dispositivo paralelo.
[in] Buffer
Puntero a un búfer de escritura asignado por el autor de la llamada.
[in] NumBytesToWrite
Especifica el número de bytes que se van a copiar del búfer de escritura en el dispositivo paralelo. Debe ser menor o igual que el número de bytes del búfer de escritura asignado por el autor de la llamada.
[out] NumBytesWritten
Especifica el número de bytes que se copiaron realmente del búfer de escritura asignado por el autor de la llamada al dispositivo paralelo.
[in] Channel
No se usa.
Valor devuelto
Código devuelto | Descripción |
---|---|
|
Los datos proporcionados por el autor de la llamada se transfirieron correctamente al dispositivo. |
|
Una operación interna produjo un error NTSTATUS. |
Comentarios
Para obtener un puntero a la devolución de llamada proporcionada por el sistema PPARALLEL_WRITE, un controlador en modo kernel usa una solicitud de IOCTL_INTERNAL_PARCLASS_CONNECT , que devuelve una estructura PARCLASS_INFORMATION . El miembro ParallelWrite de la estructura PARCLASS_INFORMATION es un puntero a esta devolución de llamada.
Un cliente solo puede usar esta rutina si tiene un bloqueo en un puerto paralelo. Un cliente obtiene un bloqueo en un puerto paralelo mediante una solicitud de IOCTL_INTERNAL_LOCK_PORT .
La PPARALLEL_WRITE devolución de llamada se ejecuta en el subproceso del autor de la llamada en el IRQL del autor de la llamada.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Escritorio |
Encabezado | parallel.h (include Parallel.h) |