struttura NOTIFICATION_INFO_W2K (1394.h)
Il driver del bus passa NOTIFICATION_INFO per passare le informazioni alla routine di notifica fornita dal driver per un intervallo di indirizzi allocato dal driver nello spazio indirizzi IEEE 1394 del computer. Il driver del bus chiama la routine di notifica quando riceve un pacchetto di richiesta di I/O asincrono per tale indirizzo.
Sintassi
typedef struct _NOTIFICATION_INFO_W2K {
PMDL Mdl;
ULONG ulOffset;
ULONG nLength;
ULONG fulNotificationOptions;
PVOID Context;
PADDRESS_FIFO Fifo;
PVOID RequestPacket;
PMDL ResponseMdl;
PVOID *ResponsePacket;
PULONG ResponseLength;
PKEVENT *ResponseEvent;
} NOTIFICATION_INFO_W2K, *PNOTIFICATION_INFO_W2K;
Members
Mdl
Se non NULL, Mdl specifica l'elenco dei descrittori di memoria (MDL) per l'intervallo di indirizzi allocato.
ulOffset
Specifica l'offset di byte con il linguaggio MDL che corrisponde all'indirizzo che ha ricevuto un pacchetto di richiesta. Usato solo quando Mdl è diverso da NULL.
nLength
Specifica il numero di byte interessati dal pacchetto di richiesta. Usato solo quando Mdl è diverso da NULL.
fulNotificationOptions
Specifica il tipo di evento che ha attivato il driver del bus per chiamare la routine di notifica. Gli eventi possibili che il conducente del bus può restituire sono i seguenti:
- NOTIFY_FLAGS_AFTER_READ
- NOTIFY_FLAGS_AFTER_WRITE
- NOTIFY_FLAGS_AFTER_LOCK
Questo membro viene usato solo quando Mdl è diverso da NULL.
Context
Puntatore a dati di contesto specifici per questo intervallo di indirizzi allocato. Il driver fornisce questi dati tramite il membro u.AllocateAddressRange.Context dell'IRB per la richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
Fifo
Puntatore alla struttura ADDRESS_FIFO che contiene l'elemento FIFO appena completato. Utilizzato solo se il driver ha inviato un elenco di ADDRESS_FIFO nella richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
RequestPacket
Se non NULL, RequestPacket punta al pacchetto di richiesta originale. Il driver del bus fornisce questo solo se il driver del dispositivo non ha fornito un MDL o un elenco di ADDRESS_FIFO nella richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
ResponseMdl
Se non NULL, ResponseMdl punta a un MDL non inizializzato. Il driver deve inizializzare questo MDL per un buffer non impaginabile e riempire il buffer con il pacchetto di risposta. Il driver del bus fornisce questo solo se il driver del dispositivo non ha fornito un MDL o un elenco di ADDRESS_FIFO nella richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
ResponsePacket
Se non NULL, ResponsePacket punta a una posizione di memoria in cui il driver inserisce un puntatore ai dati (quadlet o block) da restituire nel pacchetto di risposta. Il driver del bus fornisce questo solo se il driver del dispositivo non ha fornito un MDL o un elenco di ADDRESS_FIFO nella richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
ResponseLength
Se non NULL, ResponseLength punta a una posizione di memoria che il driver riempie con la lunghezza del pacchetto di risposta. Il driver del bus fornisce questo solo se il driver del dispositivo non ha fornito un MDL o un elenco di ADDRESS_FIFO nella richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
ResponseEvent
Se non NULL, ResponseEvent punta a una posizione di memoria in cui il driver inserisce l'evento kernel che il driver del bus deve usare per segnalare che ha completato l'invio del pacchetto di risposta. Il driver del bus fornisce questo solo se il driver del dispositivo non ha fornito un MDL o un elenco di ADDRESS_FIFO nella richiesta di REQUEST_ALLOCATE_ADDRESS_RANGE originale.
Commenti
Quando un driver alloca un intervallo di indirizzi nello spazio indirizzi IEEE 1394 del computer, potrebbe essere necessario che il driver del bus lo comunichi per alcuni o tutti i pacchetti di richiesta inviati agli indirizzi allocati. Come parte della richiesta di allocazione originale, il driver può richiedere che il driver del bus inoltra ogni pacchetto per la gestione oppure potrebbe richiedere che il driver del bus gestisca il pacchetto e informi il driver del dispositivo al termine. Per altre informazioni, vedere REQUEST_ALLOCATE_ADDRESS_RANGE.
Se il driver di dispositivo non fornisce alcun archivio di backup, il driver del bus inoltra ogni pacchetto al driver di dispositivo per la gestione. Il driver del bus passa NULL per Mdl e passa il pacchetto in RequestPacket. Il driver del bus passa anche puntatori a posizioni di memoria che il driver di dispositivo deve compilare con il buffer per il pacchetto di risposta (in ResponsePacket), la lunghezza del buffer (in ResponseLength) e un MDL per il buffer (in ResponseMdl). Il driver del bus fornisce anche una posizione di memoria che il driver può usare per passare un oggetto evento kernel in ResponseEvent. Se il driver di dispositivo fornisce un oggetto evento, il driver del bus lo usa per segnalare al driver al termine dell'invio del pacchetto di risposta.
Se il driver fornisce l'archivio di backup nella richiesta dell'intervallo di indirizzi allocato originale, il driver del bus usa la routine di notifica del driver per segnalare che ha completato la lettura o la scrittura di dati dall'archivio di backup. Passa il file MDL dell'archivio di backup nel membro Mdl e la posizione iniziale e le dimensioni all'interno del buffer associato in ulOffset e nLength. Il driver del bus passa anche il tipo di evento che ha portato alla notifica in fulNotificationOptions.
Se il driver del dispositivo usa un elenco collegato di ADDRESS_FIFO come archivio di supporto, il driver dell'autobus restituisce l'elemento elenco che ha estratto in Fifo.
Requisiti
Requisito | Valore |
---|---|
Intestazione | 1394.h (include 1394.h) |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per