Condividi tramite


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.

Nota Microsoft non consiglia l'uso di una routine di interrupt fornita dal client. L'uso di interrupt può causare instabilità del sistema. Per impostazione predefinita, la richiesta di interrupt di connessione è disabilitata. Per altre informazioni, vedere Connessione di una routine del servizio interrupt a unParallelPort.
 

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

IOCTL_INTERNAL_PARALLEL_DISCONNECT_INTERRUPT

PARALLEL_INTERRUPT_INFORMATION