Freigeben über


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.

Hinweis Der SCSI-Porttreiber und die SCSI-Miniporttreibermodelle sind möglicherweise geändert oder in Zukunft nicht mehr verfügbar. Stattdessen wird empfohlen, die Modelle Storport-Treiber und Storport-Miniporttreiber zu verwenden.
 

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)

Weitere Informationen

HwScsiWmiFunctionControl