Partager via


en-tête ntddscsi.h

Cet en-tête est utilisé par le stockage. Pour plus d'informations, consultez les pages suivantes :

ntddscsi.h contient les interfaces de programmation suivantes :

IOCTLs

 
IOCTL_ATA_PASS_THROUGH

Permet à une application d’envoyer presque n’importe quelle commande ATA à un appareil cible, avec les restrictions suivantes : _If il existe un pilote de classe pour le type d’appareil cible, l’application doit envoyer la demande au pilote de classe.
IOCTL_ATA_PASS_THROUGH_DIRECT

Découvrez comment IOCTL_ATA_PASS_THROUGH_DIRECT permet à une application d’envoyer presque n’importe quelle commande ATA à un appareil cible.
IOCTL_MINIPORT_PROCESS_SERVICE_IRP

Ce IOCTL est utilisé par une application en mode utilisateur ou un pilote en mode noyau qui nécessite une notification quand un élément intéressant se produit dans le miniport virtuel.
IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO

IOCTL_MINIPORT_SIGNATURE_ENDURANCE_INFO est la signature définie par le système utilisée conjointement avec le code de contrôle IOCTL_SCSI_MINIPORT pour demander qu’un miniport renvoie les données d’endurance d’un appareil cible.
IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL

IOCTL_MINIPORT_SIGNATURE_SET_PROTOCOL est la signature utilisée conjointement avec le code de contrôle IOCTL_SCSI_MINIPORT pour envoyer des données spécifiques au protocole à un miniport.
IOCTL_MPIO_PASS_THROUGH_PATH

Ce code de contrôle d’E/S permet à une application ou à un pilote de noyau d’envoyer une commande SCSI à un numéro d’unité logique réel désigné.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT

Découvrez comment ce code de contrôle d’E/S permet à un pilote d’application ou de noyau d’envoyer une commande SCSI à un numéro d’unité logique réel désigné.
IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX

La demande de code de contrôle IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX est la version étendue de la demande IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT. Cette demande prend en charge les transferts de données bidirectionnels et autorise un bloc de données de commande (CDB) > de 16 octets.
IOCTL_MPIO_PASS_THROUGH_PATH_EX

La demande de code de contrôle IOCTL_MPIO_PASS_THROUGH_PATH_EX est la version étendue de la demande IOCTL_MPIO_PASS_THROUGH_PATH. Cette demande prend en charge les transferts de données bidirectionnels et autorise un bloc de données de commande (CDB) > de 16 octets.
IOCTL_SCSI_GET_ADDRESS

Retourne les informations d’adresse, telles que l’ID cible (TID) et le numéro d’unité logique (LUN) d’une cible SCSI particulière.
IOCTL_SCSI_GET_CAPABILITIES

Retourne les fonctionnalités et les limitations de l’adaptateur HBA SCSI sous-jacent.
IOCTL_SCSI_GET_INQUIRY_DATA

Retourne les données d’interrogation SCSI pour tous les appareils sur un adaptateur de bus hôte (HBA) SCSI donné.
IOCTL_SCSI_MINIPORT

Envoie une fonction de contrôle spéciale à un pilote miniport spécifique à HBA.
IOCTL_SCSI_MINIPORT_DIAGNOSTIC

Le code de contrôle IOCTL_SCSI_MINIPORT_DIAGNOSTIC est utilisé pour effectuer une demande de diagnostic au Miniport.
IOCTL_SCSI_MINIPORT_HYBRID

Le code de contrôle IOCTL_SCSI_MINIPORT_HYBRID envoie une demande de contrôle de disque hybride à un pilote miniport spécifique à HBA.
IOCTL_SCSI_MINIPORT_NVCACHE

Les opérations de gestion du cache NV définies ici peuvent être appelées par le code d’application en mode utilisateur exécuté avec des privilèges d’administrateur, à l’aide de DeviceIoControl et du code de contrôle IOCTL_SCSI_MINIPORT.
IOCTL_SCSI_PASS_THROUGH

Permet à une application d’envoyer presque toutes les commandes SCSI à un appareil cible, avec les restrictions suivantes : Les commandes multi-cibles, telles que COPY, ne sont pas autorisées. Les opérations de transfert de données bidirectionnelles ne sont pas prises en charge. S’il existe un pilote de classe pour le type d’appareil cible, la demande doit être envoyée à ce pilote de classe. Par conséquent, une application peut envoyer cette requête directement au pilote de port système pour une unité logique cible (LU) uniquement s’il n’existe aucun pilote de classe pour le type de périphérique connecté à cette lu. Le pilote de port système ne case activée pas pour déterminer si un périphérique a été revendiqué par un pilote de classe avant qu’il ne traite une demande directe. Par conséquent, si une application contourne un pilote de classe qui a revendiqué un appareil et envoie une demande directe pour ce périphérique directement au pilote de port, un conflit de contrôle de l’appareil peut se produire entre le pilote de classe et l’application. Si une demande directe est envoyée à un objet de périphérique adaptateur et si elle provient du mode utilisateur et cible une unité logique revendiquée par un pilote de classe, Storport échoue à la demande avec STATUS_INVALID_DEVICE_REQUEST. Si la requête est envoyée à un objet d’appareil lu, provient du mode noyau ou cible une unité logique non réclamée, elle est passée au pilote miniport. Cette requête ne peut pas être utilisée si la base de données CDB peut nécessiter le pilote miniport sous-jacent pour accéder directement à la mémoire. Si la base de données CDB de l’appelant peut nécessiter un accès direct à la mémoire, utilisez IOCTL_SCSI_PASS_THROUGH_DIRECT à la place. Les applications ne doivent pas tenter d’envoyer une demande directe de manière asynchrone. Toutes les demandes directes doivent être synchrones. Les applications ne nécessitent pas de privilèges administratifs pour envoyer une demande directe à un appareil, mais elles doivent disposer d’un accès en lecture/écriture à l’appareil. L’application appelante crée le bloc de descripteur de commande SCSI, qui peut inclure une demande de données d’sens de requête si une condition CHECK se produit. IOCTL_SCSI_PASS_THROUGH est une demande de contrôle d’appareil mise en mémoire tampon. Pour contourner la mise en mémoire tampon dans la mémoire système, les appelants doivent utiliser IOCTL_SCSI_PASS_THROUGH_DIRECT. Lors de la gestion d’une demande de IOCTL_SCSI_PASS_THROUGH_DIRECT, le système verrouille la mémoire tampon dans la mémoire utilisateur et l’appareil accède directement à cette mémoire. Cette requête est généralement utilisée pour transférer de petites quantités de données (<16 Ko). Les applications peuvent envoyer cette demande au moyen d’une demande de IRP_MJ_DEVICE_CONTROL. Les pilotes de classe de stockage définissent le numéro IRP secondaire sur IRP_MN_SCSI_CLASS pour indiquer que la demande a été traitée par un pilote de classe de stockage.
IOCTL_SCSI_PASS_THROUGH_DIRECT

Permet à une application d’envoyer presque toutes les commandes SCSI à un appareil cible, avec les restrictions suivantes : Les commandes multi-cibles, telles que COPY, ne sont pas autorisées. Les opérations de transfert de données bidirectionnelles ne sont pas prises en charge. S’il existe un pilote de classe pour le type d’appareil cible, la demande doit être envoyée à ce pilote de classe. Par conséquent, une application peut envoyer cette requête directement au pilote de port système pour une unité logique cible uniquement s’il n’existe aucun pilote de classe pour le type d’appareil connecté à cette lu. Cette demande doit être effectuée si la base de données CDB d’entrée peut nécessiter que le pilote miniport sous-jacent accède directement à la mémoire. L’application appelante crée le bloc de descripteur de commande SCSI, qui peut inclure une demande de données d’sens de requête si une condition CHECK se produit. Si la CDB demande une opération de transfert de données, l’appelant doit configurer une mémoire tampon alignée sur le périphérique de l’adaptateur à partir de laquelle ou dans laquelle le pilote miniport peut transférer des données directement. Cette requête est généralement utilisée pour transférer de plus grandes quantités de données (>16 Ko). Les applications peuvent envoyer cette demande au moyen d’une demande de IRP_MJ_DEVICE_CONTROL. Les pilotes de classe de stockage définissent le numéro IRP secondaire sur IRP_MN_SCSI_CLASS pour indiquer que la demande a été traitée par un pilote de classe de stockage.
IOCTL_SCSI_PASS_THROUGH_DIRECT_EX

La demande de code de contrôle IOCTL_SCSI_PASS_THROUGH_DIRECT_EX est la version étendue de la demande IOCTL_SCSI_PASS_THROUGH_DIRECT. Cette demande prend en charge les transferts de données bidirectionnels et autorise un bloc de données de commande (CDB) > de 16 octets.
IOCTL_SCSI_PASS_THROUGH_EX

La demande de code de contrôle IOCTL_SCSI_PASS_THROUGH_EX est la version étendue de la demande IOCTL_SCSI_PASS_THROUGH. Cette demande prend en charge les transferts de données bidirectionnels et autorise un bloc de données de commande (CDB) > de 16 octets.
IOCTL_SCSI_RESCAN_BUS

Réanalyse les lun sur le ou les bus.

Structures

 
ATA_PASS_THROUGH_DIRECT

La structure ATA_PASS_THROUGH_DIRECT est utilisée conjointement avec une demande de IOCTL_ATA_PASS_THROUGH_DIRECT pour indiquer au pilote de port d’envoyer une commande ATA incorporée à l’appareil cible.
ATA_PASS_THROUGH_EX

La structure ATA_PASS_THROUGH_EX est utilisée conjointement avec une demande de IOCTL_ATA_PASS_THROUGH pour indiquer au pilote de port d’envoyer une commande ATA incorporée à l’appareil cible.
HYBRID_INFORMATION

La structure HYBRID_INFORMATION contient des informations sur les capacités de disque hybride.
IO_SCSI_CAPABILITIES

La structure IO_SCSI_CAPABILITIES est utilisée conjointement avec la demande IOCTL_SCSI_GET_CAPABILITIES pour récupérer les fonctionnalités et les limitations de l’adaptateur hôte SCSI sous-jacent. Remarque Les modèles de pilote de port SCSI et de pilote miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser les modèles de pilote Storport et de pilote miniport Storport.
MPIO_PASS_THROUGH_PATH

La structure MPIO_PASS_THROUGH_PATH est utilisée avec une demande de IOCTL_MPIO_PASS_THROUGH_PATH pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
MPIO_PASS_THROUGH_PATH_DIRECT

La structure MPIO_PASS_THROUGH_PATH_DIRECT est utilisée avec une demande de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
MPIO_PASS_THROUGH_PATH_DIRECT_EX

La structure MPIO_PASS_THROUGH_PATH_DIRECT_EX est utilisée avec une demande de IOCTL_MPIO_PASS_THROUGH_PATH_DIRECT_EX pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
MPIO_PASS_THROUGH_PATH_EX

La structure MPIO_PASS_THROUGH_PATH_EX est utilisée avec une demande de IOCTL_MPIO_PASS_THROUGH_PATH_EX pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
NTSCSI_UNICODE_STRING

Les pilotes de port de stockage peuvent utiliser la structure NTSCSI_UNICODE_STRING pour définir des chaînes Unicode.
NV_FEATURE_PARAMETER

La structure NV_FEATURE_PARAMETER est utilisée conjointement avec la demande de IOCTL_SCSI_MINIPORT_NVCACHE pour obtenir des informations de prise en charge des fonctionnalités nv Cache Manager à partir de l’appareil.
NVCACHE_REQUEST_BLOCK

La structure NVCACHE_REQUEST_BLOCK est utilisée conjointement avec la demande IOCTL_SCSI_MINIPORT pour gérer les périphériques de disque dur hybride (H-HDD) (par exemple, la technologie Microsoft ReadyDrive).
SCSI_ADAPTER_BUS_INFO

La structure SCSI_ADAPTER_BUS_INFO est utilisée conjointement avec la demande de IOCTL_SCSI_GET_INQUIRY_DATA pour récupérer les données de recherche SCSI pour tous les appareils d’un bus SCSI donné.
SCSI_ADDRESS

La structure SCSI_ADDRESS est utilisée conjointement avec la demande de IOCTL_SCSI_GET_ADDRESS pour récupérer les informations d’adresse, telles que l’ID cible (TID) et le numéro d’unité logique (LUN) d’une cible SCSI particulière.
SCSI_BUS_DATA

La structure SCSI_BUS_DATA est utilisée conjointement avec la requête IOCTL_SCSI_GET_INQUIRY_DATA et la structure SCSI_ADAPTER_BUS_INFO pour récupérer les données d’interrogation SCSI pour tous les appareils d’un bus SCSI donné.
SCSI_INQUIRY_DATA

La structure SCSI_INQUIRY_DATA est utilisée conjointement avec la demande de IOCTL_SCSI_GET_INQUIRY_DATA pour récupérer les données d’interrogation SCSI pour tous les appareils d’un bus SCSI donné.
SCSI_PASS_THROUGH

La structure SCSI_PASS_THROUGH est utilisée conjointement avec une demande de IOCTL_SCSI_PASS_THROUGH pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
SCSI_PASS_THROUGH_DIRECT

La structure SCSI_PASS_THROUGH_DIRECT est utilisée conjointement avec une demande de IOCTL_SCSI_PASS_THROUGH_DIRECT pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
SCSI_PASS_THROUGH_DIRECT_EX

La structure SCSI_PASS_THROUGH_DIRECT_EX est utilisée conjointement avec une demande de IOCTL_SCSI_PASS_THROUGH_DIRECT_EX pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
SCSI_PASS_THROUGH_EX

La structure SCSI_PASS_THROUGH_EX est utilisée conjointement avec une demande de IOCTL_SCSI_PASS_THROUGH_EX pour indiquer au pilote de port d’envoyer une commande SCSI incorporée à l’appareil cible.
SRB_IO_CONTROL

structure SRB_IO_CONTROL
STORAGE_DIAGNOSTIC_MP_REQUEST

Décrit une demande de diagnostic à Miniport. La structure STORAGE_DIAGNOSTIC_MP_REQUEST est fournie dans la mémoire tampon d’entrée/sortie d’une demande de IOCTL_SCSI_MINIPORT_DIAGNOSTIC.
STORAGE_ENDURANCE_DATA_DESCRIPTOR

Un miniport utilise STORAGE_ENDURANCE_DATA_DESCRIPTOR pour signaler les informations d’endurance d’un appareil au pilote de port de stockage.
STORAGE_ENDURANCE_INFO

Un miniport utilise la structure STORAGE_ENDURANCE_INFO pour signaler les informations d’endurance d’un appareil.

Énumérations

 
MP_STORAGE_DIAGNOSTIC_LEVEL

L’énumération MP_STORAGE_DIAGNOSTIC_LEVEL permet à l’appelant de contrôler les types de données que le fournisseur doit retourner.
MP_STORAGE_DIAGNOSTIC_TARGET_TYPE

L’énumération MP_STORAGE_DIAGNOSTIC_TARGET_TYPE spécifie le type cible d’un diagnostic de stockage.