Condividi tramite


Funzione IoMakeAssociatedIrp (ntddk.h)

Questa routine è riservata per l'uso da parte di file system e driver di filtro del file system. La routine IoMakeAssociatedIrp alloca e inizializza un IRP da associare a un IRP master inviato a un driver di livello più alto, consentendo al chiamante di suddividere la richiesta originale e inviare i runtime di integrazione associati a driver di livello inferiore.

Sintassi

PIRP IoMakeAssociatedIrp(
  [in] PIRP  Irp,
  [in] CCHAR StackSize
);

Parametri

[in] Irp

Puntatore all'IRP master immesso nella routine Dispatch di un driver di livello più alto.

[in] StackSize

Specifica il numero di posizioni dello stack da allocare per l'IRP associato. Il valore deve essere almeno uguale al StackSize dell'oggetto dispositivo del driver inferiore successivo, ma l'IRP associato può avere un percorso dello stack aggiuntivo per il chiamante.

Valore restituito

IoMakeAssociatedIrp restituisce un puntatore all'IRP associato o restituisce un puntatore NULL se non è possibile allocare un IRP.

Osservazioni

Solo un driver di livello più alto può chiamare questa routine.

Il gestore di I/O completa automaticamente l'IRP master quando i driver inferiori hanno completato tutti i runtime di integrazione associati, purché il chiamante non abbia impostato il routine IoCompletion in un IRP associato e restituito STATUS_MORE_PROCESSING_REQUIRED dalla relativa routine IoCompletion. In queste circostanze, il chiamante deve completare in modo esplicito l'IRP master quando tale driver ha determinato che tutti i runtime di integrazione associati sono stati completati.

Solo l'IRP master è associato a un thread; i runtime di integrazione associati non sono. Per questo motivo, il gestore di I/O non può chiamare Routine annulla per i runtime di integrazione associati quando un thread viene chiuso. Quando il thread di IRP master viene chiuso, il gestore di I/O chiama la routine Annulla di IRP master. La routine Cancel è responsabile del rilevamento di tutti i runtime di integrazione associati e della chiamata di IoCancelIrp per annullarli.

Fabbisogno

Requisito Valore
client minimo supportato Disponibile a partire da Windows 2000.
piattaforma di destinazione Universale
intestazione ntddk.h (include Ntddk.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Vedere anche

IRP

IoAllocateIrp

IoBuildAsynchronousFsdRequest

IoBuildDeviceIoControlRequest

IoBuildSynchronousFsdRequest

IoCallDriver

IoSetCompletionRoutine