Partager via


IOCTL_SCSI_MINIPORT_NVCACHE IOCTL (ntddscsi.h)

Les opérations NV Cache Management 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 . Ou bien, l’appelant peut être du code de pilote en mode noyau à l’aide d’IoBuildDeviceIoControlRequest et du code de contrôle IOCTL_SCSI_MINIPORT.

La demande de fonction Nv Cache Management est spécifiée dans un champ de la structure NVCACHE_REQUEST_BLOCK . L’entrée pour IOCTL_SCSI_MINIPORT est une structure de données définie par l’utilisateur qui contient une structure SRB_IO_CONTROL suivie d’une structure de NVCACHE_REQUEST_BLOCK . Des données supplémentaires spécifiques à une fonction peuvent éventuellement suivre la structure NVCACHE_REQUEST_BLOCK .

L’interface utilisée pour la fonctionnalité gestion du cache NV se compose de deux couches. La première couche est l’interface entre un appelant et le pilote de port, qui est défini par IOCTL_SCSI_MINIPORT. La deuxième couche est l’interface entre l’appelant et l’appareil, qui est définie par la spécification ATA8-ACS et IOCTL_SCSI_MINIPORT_NVCACHE. L’API pour le code d’application en mode utilisateur est l’interface DeviceIoControl. L’API pour le code du pilote en mode noyau est l’interface IoBuildDeviceIoControlRequest , qui utilise IOCTL_SCSI_MINIPORT.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

La mémoire tampon dans Irp-AssociatedIrp.SystemBuffer> contient une structure SRB_IO_CONTROL avec le champ Signature défini sur « HYBRDISK » et le champ ControlCode défini sur IOCTL_SCSI_MINIPORT_NVCACHE. La structure NVCACHE_REQUEST_BLOCK suit immédiatement la structure SRB_IO_CONTROL . Toute mémoire tampon de données facultative spécifique à une fonction suit immédiatement la structure NVCACHE_REQUEST_BLOCK .

Longueur de la mémoire tampon d’entrée

Parameters.DeviceIoControl.InputBufferLength indique la taille, en octets, de toutes les données d’entrée : SRB_IO_CONTROL, NVCACHE_REQUEST_BLOCK et mémoire tampon de données spécifique aux fonctions combinées. La présence ou l’absence d’une mémoire tampon de données est indiquée par le champ NVCACHE_REQUEST_BLOCK****DataBufSize .

Mémoire tampon de sortie

Les SRB_IO_CONTROLmises à jour SRB_IO_CONTROL**]() et les structures NVCACHE_REQUEST_BLOCK, ainsi que la mémoire tampon de données facultative spécifique à la fonction, sont retournées à la mémoire tampon à l’adresse Irp-AssociatedIrp.SystemBuffer>.

Longueur de la mémoire tampon de sortie

Longueur de la mémoire tampon.

Bloc d’état

Le champ Informations contient le nombre d’octets retournés dans la mémoire tampon de sortie. Le champ État indique les résultats de l’opération.

Configuration requise

Condition requise Valeur
En-tête ntddscsi.h (inclure Ntddscsi.h)

Voir aussi

IOCTL_SCSI_MINIPORT

IoBuildDeviceIoControlRequest

NVCACHE_REQUEST_BLOCK

SRB_IO_CONTROL