IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT IOCTL (parallel.h)
La richiesta di IOCTL_INTERNAL_PARALLEL_CONNECT_INTERRUPT connette una routine del servizio interrupt facoltativa e un controllo porta posticipato facoltativo routine a una porta parallela. Solo i driver in modalità kernel possono usare questa richiesta.
La richiesta di interrupt di connessione restituisce informazioni che il driver può usare nel contesto di un ISR specifico del driver. Le informazioni includono un puntatore all'oggetto interrupt e ai puntatori alle routine di callback che allocano e liberano la porta parallela in IRQL = DIRQL.
Codice principale
IRP_MJ_INTERNAL_DEVICE_CONTROL
Buffer di input
Il membro AssociatedIrp.SystemBuffer punta a una struttura PARALLEL_INTERRUPT_SERVICE_ROUTINE allocata dal client alle informazioni sul servizio di input interrupt. Il driver di funzione fornito dal sistema per le porte parallele usa lo stesso buffer di memoria, ma lo esegue il cast a un tipo di dati diverso per le informazioni di output.
Lunghezza del buffer di input
Il membro Parameters.DeviceIoControl.InputBufferLength viene impostato sulle dimensioni, in byte, di una struttura PARALLEL_INTERRUPT_SERVICE_ROUTINE.
Buffer di output
Il membro AssociatedIrp.SystemBuffer punta a una struttura PARALLEL_INTERRUPT_INFORMATION utilizzata dal driver della funzione di porta parallela per restituire informazioni sull'interrupt parallelo.
Lunghezza del buffer di output
Il membro Parameters.DeviceIoControl.OutputBufferLength è impostato sulle dimensioni, in byte, di una struttura PARALLEL_INTERRUPT_INFORMATION.
Blocco di stato
Se la richiesta ha esito positivo, il membro informazioni viene impostato sulle dimensioni, in byte, di una struttura PARALLEL_INTERRUPT_INFORMATION. In caso contrario, il membro Informazioni è impostato su zero.
Il membro Stato è impostato su uno dei valori di stato generici restituiti dalle richieste di controllo del dispositivo interno per le porte parallele o su uno dei valori seguenti:
STATUS_BUFFER_TOO_SMALL
Almeno una delle condizioni seguenti è vera:
Il valore del membro Parameters.DeviceIoControl.InputBufferLength è minore delle dimensioni, in byte, di una struttura PARALLEL_INTERRUPT_SERVICE_ROUTINE.
Il valore del membro parameters.DeviceIoControl.OuputBufferLength è minore delle dimensioni, in byte, di una struttura di PARALLEL_INTERRUPT_INFORMATION.
Fabbisogno
Requisito | Valore |
---|---|
intestazione | parallel.h (include Parallel.h) |
Vedere anche
PARALLEL_INTERRUPT_SERVICE_ROUTINE