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

REQUEST_ALLOCATE_ADDRESS_RANGE