Partager via


Exemple 14 : Configuration d’un pool spécial

À partir de Windows Vista, vous pouvez configurer la fonctionnalité Pool spécial en tant que paramètre d’indicateur de noyau ou en tant que paramètre de Registre. Si vous le configurez en tant que paramètre d’indicateur de noyau (heure d’exécution), vous n’avez pas besoin de redémarrer l’ordinateur pour que la modification soit effective. Dans les versions antérieures de Windows, le pool spécial est disponible uniquement en tant que paramètre de Registre.

En outre, à partir de Windows Vista, vous pouvez définir et configurer la fonctionnalité Pool spécial à partir de la ligne de commande. Dans les versions antérieures de Windows, vous pouvez définir et configurer la fonctionnalité Pool spécial uniquement dans la boîte de dialogue Indicateurs globaux.

Demander une balise de pool spécial par pool sans redémarrage

La commande suivante demande un pool spécial pour toutes les allocations avec la balise de pool Tag1 . Ce paramètre prend effet immédiatement, mais il est perdu si vous arrêtez ou redémarrez Windows.

Cette commande utilise le paramètre /k pour spécifier un paramètre d’indicateur de noyau (heure d’exécution) et l’abréviation +spp pour définir une demande de pool spéciale.

gflags /k +spp Tag1

Gflags répond en imprimant :

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

Notez que la demande d’allocation de pool spéciale n’est pas un paramètre d’indicateur de noyau et n’est pas reflétée dans la valeur des paramètres du noyau.

En outre, une demande d’allocation de pool spéciale ne modifie pas la valeur du paramètre de dépassement (0x1) ou de sous-exécution (0x0) pour le pool spécial. Pour remplacer les dépassements, la valeur par défaut est la sous-exécution, utilisez la boîte de dialogue Gflags. Pour plus d’informations, consultez Détection des dépassements et des dépassements.

Vous ne pouvez pas afficher la balise de pool sur la ligne de commande. Pour vérifier que la balise de pool est un paramètre de noyau, utilisez la boîte de dialogue Gflags.

Demander une balise de pool spécial par pool dans le Registre

La commande suivante demande un pool spécial pour toutes les allocations avec la balise de pool Tag1 . Étant donné que ce paramètre est stocké dans le Registre, vous devez redémarrer l’ordinateur pour le rendre effectif, mais il reste effectif jusqu’à ce que vous le modifiez.

Cette commande utilise le paramètre /r pour spécifier un paramètre de Registre et l’abréviation +spp pour définir une demande de pool spéciale.

gflags /r +spp Tag1

Gflags répond en imprimant :

Special Pool set to 0x31676154
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

Notez que la demande d’allocation de pool spéciale n’est pas un paramètre d’indicateur de Registre et n’est pas reflétée dans la valeur des paramètres du Registre.

En outre, une demande d’allocation de pool spéciale ne modifie pas la valeur du paramètre de dépassement (0x1) ou de sous-exécution (0x0) pour le pool spécial. Pour remplacer les dépassements, la valeur par défaut est la sous-exécution, utilisez la boîte de dialogue Gflags. Pour plus d’informations, consultez Détection des dépassements et des dépassements.

Pour vérifier que la valeur a été ajoutée au Registre, utilisez Reg ou Regedit pour afficher la valeur de l’entrée PoolTag dans la cléHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management .

Par exemple :

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x31676154

Demander un pool spécial par taille sans redémarrer

La commande suivante demande un pool spécial pour des allocations de 1 à 8 octets sur un ordinateur x86 avec une PAGE_SIZE de 0x1000 et une granularité d’allocation de 8 octets.

Cette commande utilise le paramètre /k pour spécifier un paramètre d’indicateur de noyau (heure d’exécution) et l’abréviation +spp pour définir une demande de pool spéciale. La valeur size est précédée de 0x pour indiquer qu’il s’agit d’une taille et non d’une balise de pool.

La valeur, 0x10, est calculée en ajoutant la granularité d’allocation (8 octets) à la plus grande taille de la plage (8 octets) pour un total de 16 octets (0x10). Pour obtenir de l’aide sur la détermination de la valeur correcte à entrer, consultez « Sélection d’une taille d’allocation » dans Pool spécial.

gflags /k +spp 0x10

Gflags répond en imprimant :

Special Pool set to 0x10
PoolTagOverruns set to 0x1
Current Running Kernel Settings are: 00000000

Là encore, la demande d’allocation de pool spéciale n’est pas un paramètre d’indicateur de noyau et n’est pas reflétée dans la valeur des paramètres du noyau.

En outre, une demande d’allocation de pool spéciale ne modifie pas la valeur du paramètre de dépassement (0x1) ou de sous-exécution (0x0) pour le pool spécial. Pour remplacer les dépassements, la valeur par défaut est la sous-exécution, utilisez la boîte de dialogue Gflags. Pour plus d’informations, consultez Détection des dépassements et des dépassements.

Demander un pool spécial par taille dans le Registre

La commande suivante demande un pool spécial pour des allocations de 1024 à 1 040 octets sur un ordinateur x64 avec un PAGE_SIZE de 0x1000 et une granularité d’allocation de 16 octets.

Cette commande utilise le paramètre /r pour spécifier un paramètre de Registre à l’échelle du système et l’abréviation +spp pour définir une demande de pool spéciale. La valeur size est précédée de 0x pour indiquer qu’il s’agit d’une taille et non d’une balise de pool.

La valeur, 0x420, est calculée en ajoutant la granularité d’allocation (16 octets) à la plus grande taille de la plage (1 040 octets) pour un total de 1 056 octets (0x420). Pour obtenir de l’aide sur la détermination de la valeur correcte à entrer, consultez « Sélection d’une taille d’allocation » dans Pool spécial.

gflags /r +spp 0x420

Gflags répond en imprimant :

Special Pool set to 0x420
PoolTagOverruns set to 0x1
Current Boot Registry Settings are: 00000000

Là encore, la demande d’allocation de pool spéciale n’est pas un paramètre d’indicateur de Registre et n’est pas reflétée dans la valeur des paramètres du Registre.

En outre, une demande d’allocation de pool spéciale ne modifie pas la valeur du paramètre de dépassement (0x1) ou de sous-exécution (0x0) pour le pool spécial. Pour remplacer les dépassements, la valeur par défaut est la sous-exécution, utilisez la boîte de dialogue Gflags. Pour plus d’informations, consultez Détection des dépassements et des dépassements.

Pour vérifier que la valeur a été ajoutée au Registre, utilisez Reg ou Regedit pour afficher la valeur de l’entrée PoolTag dans la cléHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management .

Par exemple :

c:>reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" -v PoolTag
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
    PoolTag    REG_DWORD    0x420

Annuler une demande de pool spéciale

La commande suivante annule une demande de pool spécial en tant que paramètre d’indicateur de noyau (heure d’exécution). La commande est la même pour une requête par balise de pool ou par taille.

gflags /k -spp

La commande suivante annule une demande de pool spécial en tant que paramètre de Registre. La commande est la même pour une requête par balise de pool ou par taille.

gflags /r -spp

Lorsque la commande réussit, Gflags répond en imprimant :

Special Pool value has been deleted.