ScsiPortWmiFireLogicalUnitEvent-Funktion (scsiwmi.h)
Die ScsiPortWmiFireLogicalUnitEvent-Routine sendet ein Ereignis, das einer logischen Einheit zugeordnet ist, an den Porttreiber zur Übermittlung an WMI-Datenconsumer, die eine Benachrichtigung über das Ereignis angefordert haben.
Syntax
void ScsiPortWmiFireLogicalUnitEvent(
[in] PVOID HwDeviceExtension,
[in] UCHAR PathId,
[in] UCHAR TargetId,
[in] UCHAR Lun,
[in] LPGUID Guid,
[in] ULONG InstanceIndex,
[in] ULONG EventDataSize,
[in] PVOID EventData
);
Parameter
[in] HwDeviceExtension
Zeiger auf die Hardwaregeräteerweiterung. Dies ist ein Speicherbereich pro HBA, den der Porttreiber im Namen des Miniporttreibers zuordnet und initialisiert. Miniport-Treiber speichern in der Regel HBA-spezifische Informationen in dieser Erweiterung, z. B. den Zustand des HBA und die zugeordneten Zugriffsbereiche des HBA. Dieser Bereich steht dem Miniporttreiber im DeviceExtension-HwDeviceExtension-Member des HBA-Geräteobjekts> unmittelbar nach dem Aufruf von ScsiPortInitialize vom Miniporttreiber zur Verfügung. Der Porttreiber gibt diesen Arbeitsspeicher frei, wenn er das Gerät entfernt.
[in] PathId
Identifiziert den SCSI-Bus; SP_UNTAGGED gibt alle Busse an, die vom HBA gesteuert werden.
[in] TargetId
Identifiziert den Zielcontroller oder das Zielgerät auf den angegebenen Bus(n); SP_UNTAGGED gibt alle Ziele im Bus an.
[in] Lun
Gibt die logische Einheit für den angegebenen Zielcontroller oder das angegebene Gerät an; SP_UNTAGGED gibt alle logischen Einheiten für die angegebenen Zielcontroller auf den angegebenen Bus(n) an.
[in] Guid
Zeiger auf die GUID, die den Ereignisblock darstellt.
[in] InstanceIndex
Wenn der Ereignisblock über mehrere Instanzen verfügt, gibt den Index des instance an.
[in] EventDataSize
Gibt die Anzahl der Byte der Daten bei EventData an, nicht einschließlich der Padbytes am Anfang des Ereignisdatenpuffers. Wenn für ein Ereignis keine Daten generiert werden, sollte EventDataSize auf Null festgelegt werden.
[in] EventData
Zeiger auf einen vom Miniporttreiber zugewiesenen Puffer, der Daten enthält, die vom Miniporttreiber für das Ereignis generiert wurden. Der Puffer muss mindestens die Größe der Ereignisdaten plus 0x40 Padbytes am Anfang des Puffers aufweisen.
Rückgabewert
Keine
Bemerkungen
Ein Miniporttreiber ruft ScsiPortWmiFireLogicalUnitEvent auf, um ein Ereignis zu senden, das einem Adapter oder einer logischen Einheit zugeordnet ist, an alle Datenconsumer, die eine Benachrichtigung über das Ereignis angefordert haben.
Der Miniporttreiber sendet ein Ereignis nur, wenn es zuvor von der HwScsiWmiFunctionControl-Routine des Miniporttreibers aktiviert wurde.
Der Treiber sollte Ereignisdaten im Offset 0x40 in den Puffer schreiben, auf den EventData verweist. Die ersten 0x40 Bytes werden von SCSI WMI verwendet. Wenn keine Daten mit dem Ereignis zurückgegeben werden, sollte EventData 0x40 Bytes lang sein.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | scsiwmi.h (einschließlich Miniport.h, Scsi.h) |