Partager via


IOCTL_EHSTOR_BANDMGMT_CREATE_BAND IOCTL (ehstorbandmgmt.h)

De nouvelles bandes sont créées sur un périphérique de stockage géré par bande avec la demande IOCTL_EHSTOR_BANDMGMT_CREATE_BAND . Une nouvelle bande est ajoutée à la table des entrées de bande, qui inclut l’emplacement de la bande et les propriétés de sécurité.

Code principal

IRP_MJ_DEVICE_CONTROL

Mémoire tampon d'entrée

La mémoire tampon dans Irp-AssociatedIrp.SystemBuffer> doit contenir une structure CREATE_BAND_PARAMETERS suivie des structures BAND_LOCATION_INFO, BAND_SECURITY_INFO et AUTH_KEY.

Si le membre AuthKeyOffset de CREATE_BAND_PARAMETERS est défini sur EHSTOR_BANDMGR_NO_KEY, les données d’entrée dans la mémoire tampon système n’ont pas besoin d’inclure une structure de AUTH_KEY .

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

Parameters.DeviceIoControl.InputBufferLength indique la taille, en octets, de la mémoire tampon, qui doit être au moins sizeof (CREATE_BAND_PARAMETERS) + sizeof(BAND_LOCATION_INFO) + sizeof (BAND_SECURITY_INFO) + sizeof(AUTH_KEY).

Mémoire tampon de sortie

La mémoire tampon de sortie dans Irp-AssociatedIrp.SystemBuffer> contient éventuellement une valeur ULONG pour l’identificateur de la bande nouvellement créée.

Longueur de la mémoire tampon de sortie

Parameters.DeviceIoControl.OutputBufferLength doit être au moins sizeof(ULONG) pour recevoir l’identificateur de bande. Si le retour de l’identificateur de bande n’est pas souhaité, définissez Parameters.DeviceIoControl.OutputBufferLength sur 0.

Bloc d’état

L’une des valeurs suivantes peut être retournée dans le champ État .

Valeur d’état Description
STATUS_SUCCESS Le nouveau groupe a été créé.
STATUS_INVALID_DEVICE_REQUEST Le périphérique de stockage ne prend pas en charge la gestion des bandes.
STATUS_INVALID_BUFFER_SIZE La taille de la mémoire tampon d’entrée n’est pas valide.
STATUS_INVALID_PARAMETER Les informations contenues dans la mémoire tampon d’entrée ne sont pas valides.
STATUS_CONFLICTING_ADDRESSES La bande n’a pas été créée en raison des emplacements qui se chevauchent.
STATUS_INSUFFICIENT_RESOURCES La bande n’a pas été créée, car la table de bandes est déjà pleine.
STATUS_IO_DEVICE_ERROR Échec de la communication. Le périphérique de stockage peut être incompatible avec les protocoles de sécurité.

Remarques

L’attribution d’une clé d’authentification à une bande nouvellement créée est facultative. Si aucune clé n’est fournie, où AuthKeyOffset = EHSTOR_BANDMGR_NO_KEY dans la structure CREATE_BAND_PARAMETERS , une clé d’authentification par défaut est utilisée. Toutefois, cela rend la bande vulnérable à un autre appelant qui peut prendre le contrôle de la bande immédiatement après sa création en modifiant sa clé d’authentification. Il est recommandé d’affecter une clé d’authentification autre que celle par défaut à la bande au moment de la création.

Les modifications apportées à la table de bandes par cette requête sont validées sur l’appareil de manière atomique avant la fin de la requête IOCTL. Par conséquent, il est garanti que la bande est créée avec toutes ses propriétés définies ou non créées si un système ou une panne d’alimentation se produit.

L’emplacement de la nouvelle bande ne doit pas chevaucher une bande existante, sinon cette demande échouera avec STATUS_CONFLICTING_ADDRESSES.

Si la bande est déverrouillée, les membres ReadLock ou WriteLock de BAND_SECURITY_INFO ont la valeur FALSE et CREATEBAND_AUTHKEY_CACHING_ENABLED est défini dans le membre Indicateurs de CREATE_BAND_PARAMETERS, la mise en cache des informations d’identification est activée. Le pilote de silo d’authentification met en cache la clé d’authentification de bande en mémoire. Cela permet au pilote de silo d’authentifier automatiquement l’accès de l’hôte au périphérique de stockage lorsque la maintenance du volume est nécessaire, comme le redimensionnement de la bande.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 8
En-tête ehstorbandmgmt.h (inclure EhStorBandMgmt.h)

Voir aussi

BAND_LOCATION_INFO

BAND_SECURITY_INFO

CREATE_BAND_PARAMETERS