Funzione IoStartPacket (ntifs.h)

La routine IoStartPacket chiama la routine StartIo del driver con l'IRP specificato o inserisce l'IRP nella coda di dispositivi associata all'oggetto dispositivo specificato se il dispositivo è già occupato.

Sintassi

void IoStartPacket(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           PIRP           Irp,
  [in, optional] PULONG         Key,
  [in, optional] PDRIVER_CANCEL CancelFunction
);

Parametri

[in] DeviceObject

Puntatore all'oggetto dispositivo di destinazione per IRP.

[in] Irp

Puntatore all'IRP da elaborare.

[in, optional] Key

Puntatore a un valore che determina dove inserire il pacchetto nella coda del dispositivo. Se questo è zero, il pacchetto viene inserito nella parte finale della coda del dispositivo.

[in, optional] CancelFunction

Specifica il punto di ingresso per una routine Cancel fornita dal driver.

Valore restituito

nessuno

Osservazioni

Se il driver è già occupato nell'elaborazione di una richiesta per l'oggetto dispositivo di destinazione, il pacchetto viene accodato nella coda del dispositivo. In caso contrario, questa routine chiama la routine StartIo del driver con l'IRP specificato.

Se viene fornito un puntatore CancelFunction non NULL, viene impostato in IRP in modo che la routine Cancel del driver venga chiamata se l'IRP viene annullato prima del completamento.

I driver che non dispongono di una routine StartIo non possono chiamare IoStartPacket.

I chiamanti di IoStartPacket devono essere in esecuzione in IRQL <= DISPATCH_LEVEL. In genere, questa routine viene chiamata dalla routine Dispatch di un driver di dispositivo in IRQL = PASSIVE_LEVEL.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL (vedere la sezione Osservazioni)

Vedi anche

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey