Fonction IoSetPartitionInformationEx (ntddk.h)
Pour le disque représenté par DeviceObject, la routine IoSetPartitionInformationEx initialise une entrée de table de partition avec les informations spécifiées dans la structure SET_PARTITION_INFORMATION_EX.
Syntaxe
NTSTATUS IoSetPartitionInformationEx(
[in] PDEVICE_OBJECT DeviceObject,
[in] ULONG PartitionNumber,
[in] _SET_PARTITION_INFORMATION_EX *PartitionInfo
);
Paramètres
[in] DeviceObject
Pointeur vers l’objet d’appareil représentant l’appareil sur lequel le type de partition doit être défini.
[in] PartitionNumber
Spécifie le numéro de partition sur l’appareil dont le type de partition doit être défini.
[in] PartitionInfo
Structure dont le membre PartitionType spécifie le type de la partition. Pour les valeurs PartitionType actuellement définiesPARTITION_INFORMATION.
Valeur de retour
Si IoSetPartitionInformationEx retourne STATUS_SUCCESS, le pilote de disque met à jour sa notion de type de partition pour cette partition dans son extension d’appareil.
Remarques
IoSetPartitionInformationEx ne doit être utilisé que par les pilotes de disque. D’autres pilotes doivent utiliser la demande d’E/S de disque IOCTL_DISK_SET_PARTITION_INFO_EX à la place.
Cette routine est appelée lorsqu’un pilote de périphérique de disque est demandé pour définir des informations de partition dans une entrée de table de partition par une demande de IRP_MJ_DEVICE_CONTROL. Cette requête est généralement émise par l’utilitaire de format, qui exécute des fonctions de contrôle d’E/S sur la partition. Le pilote transmet un pointeur vers l’objet de périphérique représentant le disque physique et le numéro de la partition associée à l’objet d’appareil que l’utilitaire de format a ouvert. Étant donné que les routines HAL qui sous-tendent IoSetPartitionInformationEx ont été développées avant l’implémentation du partitionnement dynamique, elles ne font pas la distinction entre les partitionordinales (c’est-à-dire l’ordre d’une partition sur un disque) et le numéro de partition (le numéro de partition affecté à une partition pour l’identifier au système). Les pilotes doivent appeler IoSetPartitionInformationEx à l’aide du numéro ordinal de la partition et non du numéro de partition réel.
Si la partition est une partition de type MBR (Master Boot Record), IoSetPartitionInformationEx est limitée à définir le style de partition et le style de partition, qui est représenté comme un caractère non signé. Consultez SET_PARTITION_INFORMATION_MBR pour plus d’informations sur ces valeurs.
Si la partition est une partition de table de partition GUID (GPT), IoSetPartitionInformationEx définit les valeurs suivantes : le style de partition, le type de partition, représenté par un GUID au lieu d’un entier comme c’était le cas avec des partitions MBR ; un ID de partition, également représenté par un GUID ; un ensemble d’attributs (consultez l’interface de microprogramme extensible pour obtenir une description de ces attributs) ; et un nom Unicode pour la partition. Consultez SET_PARTITION_INFORMATION_GPT pour plus d’informations sur ces valeurs.
Cette routine est synchrone et doit être appelée par la routine Dispatch du pilote de disque ou par un thread de pilote. Ainsi, tous les threads de système de fichiers et d’utilisateur doivent être prêts à entrer un état d’attente lors de l’émission de la demande de contrôle d’appareil pour définir le type de partition de l’appareil.
Cette routine fonctionne selon l’hypothèse que le numéro de partition transmis par le pilote de disque existe réellement.
Cette routine doit être appelée à IRQL = PASSIVE_LEVEL, car elle utilise un objet d’événement de noyau pour synchroniser l’achèvement des E/S sur l’appareil. L’événement ne peut pas être défini sur l’état Signaled sans mise en file d’attente et l’exécution de laroutine spéciale du système d’E/S pour l’achèvement des E/S.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ntddk.h (include Ntddk.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL (voir la section Remarques) |
règles de conformité DDI | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |