Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Klassentreiber DRIVER_DISPATCH und DispatchClose-Routinen haben in der Regel keine gerätespezifischen Anforderungen. Die meisten Speicherklassentreiber sind Zwischentreiber; ihre Verteilerroutinen geben einfach STATUS_SUCCESS zurück, um anzugeben, dass ein bestimmtes Geräteobjekt vorhanden ist, damit Treiber höherer Ebene und indirekt Benutzermodusanwendungen das Gerät für E/A öffnen und anschließend schließen können.
Klassentreiber DispatchDeviceControl und DispatchInternalDeviceControl-Routinen müssen resident sein; d. h., sie können nicht seitenfähig oder Teil des seitenfähigen Bildabschnitts eines Treibers sein. Je nach IOCTL einer bestimmten Anforderung ruft eine solche Verteilerroutine möglicherweise eine ausgelagerte Routine auf oder sie wartet auf einen Anruf von einem Synchronisierungs- oder Benachrichtigungsobjekt (wodurch der Ausführungsthread blockiert wird), aber die Verteilerroutine muss an DISPATCH_LEVEL eine unbekannte IOCTL übergeben können.
Ein Speicherklassentreiber muss über eine DispatchPnP-Routine für Anforderungen verfügen, um das Gerät zu starten, zu stoppen und zu entfernen, sowie um auf andere PnP-Anforderungen zu reagieren, z. B. auf die Benachrichtigung, dass sich das Gerät auf dem Auslagerungspfad befindet. Ausführliche Informationen zum Behandeln einer PnP-Startanforderung finden Sie unter Behandeln von PnP-Start in einem Speicherklassentreiber. Ausführliche Informationen zum Behandeln anderer PnP-Anforderungen finden Sie unter Behandeln von PnP-Anforderungen an Speicherperipheriegeräte.
Ein Speicherklassentreiber muss auch über eine DispatchPower-Routine verfügen, um Anforderungen zum Festlegen des Energiezustands seines Geräts zu bearbeiten. Ausführliche Informationen finden Sie unter Behandeln von Power Requests für Speicherperipheriegeräte.
Ein Speicherklassentreiber muss über eine DispatchShutdown-Routine und möglicherweise eine DispatchFlushBuffers-Routine verfügen, wenn sein Gerät Daten intern zwischenspeichert, wenn sein Gerät möglicherweise an einen Bus angefügt wird, der von einer HBA gesteuert wird, die Daten intern zwischenspeichert oder wenn ein Dateisystem über dem Klassentreiber überlagert wird. Um die Datenintegrität aufrechtzuerhalten, sollte ein solcher Cache auf das Gerät geleert werden, bevor das System heruntergefahren wird.
Weitere Informationen zu allgemeinen Anforderungen für Verteilerroutinen finden Sie auch unter "Schreiben von Versandroutinen ".