StorPortLogSystemEvent, fonction (storport.h)
La routine StorPortLogSystemEvent donne aux pilotes miniport un accès complet aux fonctionnalités de la fonctionnalité d’événements du noyau Windows, ce qui permet aux pilotes miniport de créer des entrées de journal des événements qui sont vraiment utiles pour résoudre les problèmes de stockage. Il offre une meilleure alternative à la fonction de journalisation des événements du pilote miniport existant, StorPortLogError.
Syntaxe
ULONG StorPortLogSystemEvent(
[in] PVOID HwDeviceExtension,
[in, out] PSTOR_LOG_EVENT_DETAILS LogDetails,
[in, out] PULONG MaximumSize
);
Paramètres
[in] HwDeviceExtension
Pointeur vers l’extension de périphérique matériel. Il s’agit d’une zone de stockage par HBA que le pilote de port alloue et initialise pour le compte du pilote miniport. Les pilotes miniport stockent généralement des informations spécifiques à l’adaptateur HBA dans cette extension, telles que l’état de l’adaptateur HBA et les plages d’accès mappées pour l’adaptateur HBA. Cette zone est disponible pour le miniport immédiatement après l’appel du pilote miniport StorPortInitialize. Le pilote de port libère cette mémoire lorsqu’il supprime l’appareil.
[in, out] LogDetails
Structure STOR_LOG_EVENT_DETAILS qui contient des informations à afficher dans l’entrée du journal des événements système.
[in, out] MaximumSize
Variable pour recevoir la taille combinée maximale des données de vidage et des chaînes de miniport. Retourné uniquement si la fonction échoue et retourne une valeur STOR_STATUS_INVALID_BUFFER_SIZE. Ce paramètre est facultatif.
Valeur de retour
Retourner le code | Description |
---|---|
|
Cette fonction n’est pas implémentée sur le système d’exploitation actif. |
|
Un paramètre non valide a été passé. |
|
L’appel a été effectué au > DISPATCH_LEVEL IRQL. |
|
Il y avait des ressources système insuffisantes pour terminer la demande. |
|
Une version non prise en charge (par exemple, plus récente) de la structure STOR_LOG_EVENT_DETAILS a été spécifiée. Quand cela est retourné, LogDetails->InterfaceRevision est défini sur la dernière version prise en charge. |
|
Les mémoires tampons passées à la fonction étaient trop volumineuses. Lorsque cette valeur est retournée, MaximumSize est défini sur la taille combinée maximale des données et chaînes de vidage du miniport. |
|
L’opération de journal s’est terminée avec succès. |
Remarques
Pour comprendre comment utiliser des codes d’erreur personnalisés pour tirer le meilleur parti, consultez Extensions du journal des erreurs Storport. La routine StorPortLogSystemEvent doit être appelée au <IRQL = DISPATCH_LEVEL. Si vous passez une version plus récente de STOR_LOG_EVENT_DETAILS que celle prise en charge par cette build, cette fonction modifie le champ InterfaceRevision vers la dernière version prise en charge et retourne STOR_STATUS_UNSUPPORTED_VERSION. Le champ InterfaceRevision de STOR_LOG_EVENT_DETAILS est une valeur 32 bits. Toutefois, seuls les trois octets les plus significatifs sont utilisés pour la validation. Le bas octet est réservé pour faire la distinction entre les variantes compatibles et mineures d’une version particulière. Par exemple, une révision 0x00000101 structure est compatible avec un Storport qui implémente la révision 0x00000100 de l’interface, bien qu’il soit possible que certaines fonctionnalités mineures et non critiques soient perdues. Si vous spécifiez une taille combinée de données de vidage et de chaînes qui dépassent la taille maximale autorisée de l’entrée du journal des événements, l’entier pointé par MaximumSize est défini sur la taille maximale autorisée des données et des chaînes de vidage miniport, et STOR_INVALID_BUFFER_SIZE est retourné. Bien que cette fonction accepte les valeurs ULONG pour les spécificateurs d’adresses ULONG, cible et LUN, les valeurs sont tronquées en valeurs UCHAR, car Storport prend uniquement en charge les valeurs 8 bits pour ces spécificateurs.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | storport.h (include Storport.h) |
règles de conformité DDI | StorPortIrql(storport) |