Partager via


En-tête ntddscsi.h

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

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 un pilote de classe pour le type cible d’appareil existe, l’application doit envoyer la requête 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

Cette IOCTL est utilisée par une application en mode utilisateur ou un pilote en mode noyau qui nécessite une notification lorsque quelque chose d’intérêt 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 retourne des données d’endurance pour 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 à une application ou un pilote de noyau d’envoyer une commande SCSI à un lun 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 requête 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) > 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 requête 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) > 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 limitations de l’adaptateur HBA SCSI sous-jacent.
IOCTL_SCSI_GET_INQUIRY_DATA

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

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

Le code de contrôle IOCTL_SCSI_MINIPORT_DIAGNOSTIC est utilisé pour effectuer une demande de diagnostic à la 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 n’importe quelle commande SCSI à un appareil cible, avec les restrictions suivantes : Les commandes multitarget, telles que COPY, ne sont pas autorisées. Les opérations de transfert de données bidirectionnelles ne sont pas prises en charge. Si un pilote de classe pour le type cible d’appareil existe, 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 d’appareil connecté à cette lu. Le pilote de port système ne vérifie pas si un périphérique a été revendiqué par un pilote de classe avant de traiter 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 pour le 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 d’appareil adaptateur et si elle provient du mode utilisateur et cible une unité logique revendiquée par un pilote de classe, Storport échoue avec STATUS_INVALID_DEVICE_REQUEST. Si la demande est envoyée à un objet de périphérique LU, provient du mode noyau ou cible une unité logique non demandée, elle est transmise au pilote miniport. Cette requête ne peut pas être utilisée si la base de données CDB peut nécessiter que le pilote miniport sous-jacent accède 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 requête directe de manière asynchrone. Toutes les demandes directes doivent être synchrones. Les applications ne nécessitent pas de privilèges d’administration pour envoyer une demande directe à un appareil, mais elles doivent avoir 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 de détection des requêtes 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 en mémoire utilisateur et l’appareil accède directement à cette mémoire. Cette demande 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 n’importe quelle commande SCSI à un appareil cible, avec les restrictions suivantes : Les commandes multitarget, telles que COPY, ne sont pas autorisées. Les opérations de transfert de données bidirectionnelles ne sont pas prises en charge. Si un pilote de classe pour le type cible d’appareil existe, 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 requête 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 de détection des requêtes si une CONDITION CHECK se produit. Si la base de données demande une opération de transfert de données, l’appelant doit configurer une mémoire tampon alignée sur un périphérique d’adaptateur à partir duquel ou dans lequel le pilote miniport peut transférer des données directement. Cette demande est généralement utilisée pour transférer de 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 requête 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) > 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 requête 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) > 16 octets.
IOCTL_SCSI_RESCAN_BUS

Réanalyse les numéros logiques 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 requête IOCTL_SCSI_GET_CAPABILITIES pour récupérer les fonctionnalités et les limitations de l’adaptateur hôte SCSI sous-jacent. Notez que le pilote de port SCSI et les modèles de pilotes miniport SCSI peuvent être modifiés ou indisponibles à l’avenir. Au lieu de cela, nous vous recommandons d’utiliser le pilote Storport et les modèles de pilotes 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 les informations de prise en charge des fonctionnalités du Gestionnaire de cache NV à partir de l’appareil.
NVCACHE_REQUEST_BLOCK

La structure NVCACHE_REQUEST_BLOCK est utilisée conjointement avec la demande de IOCTL_SCSI_MINIPORT pour gérer les périphériques de disque dur hybride (H-HDD) (par exemple, 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 d’enquête SCSI pour tous les appareils sur 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 demande de IOCTL_SCSI_GET_INQUIRY_DATA et la structure SCSI_ADAPTER_BUS_INFO pour récupérer les données d’enquête SCSI pour tous les appareils sur 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’enquête SCSI pour tous les appareils sur 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 requête 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.
STORAGE_FIRMWARE_SLOT_INFO

Découvrez la structure STORAGE_FIRMWARE_SLOT_INFO.

É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.