IoStartPacket-Funktion (ntifs.h)
Die IoStartPacket- Routine ruft die StartIo-Routine des Treibers mit dem angegebenen IRP auf oder fügt das IRP in die Gerätewarteschlange ein, die dem angegebenen Geräteobjekt zugeordnet ist, wenn das Gerät bereits ausgelastet ist.
Syntax
void IoStartPacket(
[in] PDEVICE_OBJECT DeviceObject,
[in] PIRP Irp,
[in, optional] PULONG Key,
[in, optional] PDRIVER_CANCEL CancelFunction
);
Parameter
[in] DeviceObject
Zeiger auf das Zielgerätobjekt für das IRP.
[in] Irp
Zeiger auf das zu verarbeitende IRP.
[in, optional] Key
Zeigen Sie auf einen Wert, der bestimmt, wo das Paket in die Gerätewarteschlange eingefügt werden soll. Wenn dies null ist, wird das Paket am Ende der Gerätewarteschlange eingefügt.
[in, optional] CancelFunction
Gibt den Einstiegspunkt für eine vom Treiber bereitgestellte Cancel Routine an.
Rückgabewert
Nichts
Bemerkungen
Wenn der Treiber bereits eine Anforderung für das Zielgerätobjekt verarbeitet, wird das Paket in der Gerätewarteschlange in die Warteschlange eingereiht. Andernfalls ruft diese Routine die StartIo Routine des Treibers mit dem angegebenen IRP auf.
Wenn ein Nicht-NULL-CancelFunction Zeiger bereitgestellt wird, wird er im IRP festgelegt, sodass die Cancel Routine des Treibers aufgerufen wird, wenn das IRP vor abschluss abgebrochen wird.
Treiber, die nicht über eine StartIo Routine verfügen, können nicht IoStartPacket-aufrufen.
Aufrufer von IoStartPacket- müssen unter IRQL-<= DISPATCH_LEVEL ausgeführt werden. In der Regel wird diese Routine von der Dispatch-Routine eines Gerätetreibers bei IRQL = PASSIVE_LEVEL aufgerufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows 2000 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL (siehe Abschnitt "Hinweise") |