Funzione KeInsertByKeyDeviceQueue (wdm.h)
La routine KeInsertByKeyDeviceQueue acquisisce il blocco di selezione per l'oggetto DeviceQueue specificato e accoda una voce in base al valore della chiave di ordinamento specificato se la coda del dispositivo è impostata su uno stato occupato.
Sintassi
BOOLEAN KeInsertByKeyDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
[in] ULONG SortKey
);
Parametri
[in, out] DeviceQueue
Puntatore a un oggetto controllo del tipo di coda del dispositivo per il quale il chiamante fornisce la risorsa di archiviazione.
[in, out] DeviceQueueEntry
Puntatore alla voce della coda del dispositivo da inserire nella coda del dispositivo in base al valore di chiave specifico.
[in] SortKey
Specifica il valore della chiave di ordinamento che determina la posizione nella coda del dispositivo in cui inserire la voce.
Valore restituito
Se la coda del dispositivo è vuota, viene restituito FALSE , ovvero DeviceQueueEntry non viene inserito nella coda del dispositivo.
Commenti
Il blocco spin della coda del dispositivo specificato viene acquisito e lo stato della coda del dispositivo viene controllato. Se la coda del dispositivo è impostata su uno stato occupato, l'IRP specificato da DeviceQueueEntry viene inserito nella coda del dispositivo in base al valore della chiave di ordinamento e viene rilasciato il blocco spin della coda del dispositivo.
La nuova voce viene posizionata nella coda del dispositivo dopo tutte le voci della coda con valori di chiave di ordinamento minori o uguali al valore della chiave di ordinamento e precede tutte le voci con valori di chiave di ordinamento maggiori.
Se KeInsertByKeyDeviceQueue restituisce FALSE, 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 passi da uno stato non occupato a uno stato occupato.
Questa routine è per il codice che accoda una richiesta di I/O a un driver di dispositivo.
Requisiti
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 | HwStorPortProhibitedDDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm) |