Funzione KeInsertDeviceQueue (wdm.h)
La routine KeInsertDeviceQueue acquisisce il blocco di selezione per l'oggetto coda del dispositivo specificato e, se la coda del dispositivo è impostata su uno stato occupato, accoda la voce specificata.
Sintassi
BOOLEAN KeInsertDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);
Parametri
[in, out] DeviceQueue
Puntatore a un oggetto di controllo di tipo coda del dispositivo per cui il chiamante fornisce l'archiviazione.
[in, out] DeviceQueueEntry
Puntatore alla voce della coda del dispositivo da inserire.
Valore restituito
Se la coda del dispositivo è vuota, viene restituito FALSE e il DeviceQueueEntry non viene inserito nella coda del dispositivo.
Osservazioni
Se la coda del dispositivo è impostata su uno stato occupato, il DeviceQueueEntry specificato viene inserito nella parte finale della coda del dispositivo e viene rilasciato il blocco spin della coda del dispositivo.
Se KeInsertDeviceQueue restituisce FALSE, la voce non è stata accodata e il chiamante deve iniziare a elaborare l'IRP. Una chiamata a KeInsertDeviceQueue o KeInsertByKeyDeviceQueue quando la coda è vuota fa sì che la coda del dispositivo cambi da uno stato non occupato a uno stato occupato.
Questa routine riguarda il codice che accoda una richiesta di I/O a un driver di dispositivo.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Disponibile a partire da Windows 2000. |
piattaforma di destinazione | Universale |
intestazione | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
libreria | NtosKrnl.lib |
dll | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
regole di conformità DDI | HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm) |