Partager via


Fonction RtlInitializeBitMap (wdm.h)

La routine RtlInitializeBitMap initialise l’en-tête d’une variable bitmap.

Syntaxe

NTSYSAPI VOID RtlInitializeBitMap(
  [out] PRTL_BITMAP             BitMapHeader,
  [in]  __drv_aliasesMem PULONG BitMapBuffer,
  [in]  ULONG                   SizeOfBitMap
);

Paramètres

[out] BitMapHeader

Pointeur vers une structure RTL_BITMAP vide.

[in] BitMapBuffer

Pointeur vers la mémoire allouée à l’appelant pour la bitmap elle-même. L’adresse de base de cette mémoire tampon doit être alignée sur ULONG. La taille de la mémoire tampon allouée doit être un multiple entier d’octets sizeof (ULONG).

[in] SizeOfBitMap

Spécifie le nombre de bits dans la bitmap. Cette valeur peut être n’importe quel nombre de bits qui tiennent dans la mémoire tampon allouée pour la bitmap.

Valeur de retour

None

Remarques

Un pilote peut utiliser une variable bitmap comme moyen économique de suivre un ensemble d’éléments réutilisables. Par exemple, les systèmes de fichiers utilisent une variable bitmap pour suivre les clusters/secteurs sur un disque qui ont déjà été alloués pour stocker des données de fichier. Le pilote de port SCSI fourni par le système utilise une variable bitmap pour suivre les balises de file d’attente qui ont été affectées à des blocs de requête SCSI (SBS).

RtlInitializeBitMap doit être appelé avant toute autre routine RtlXxx qui fonctionne sur une variable bitmap. Le pointeur BitMapHeader est un paramètre d’entrée dans tous les appels RtlXxx suivants qui opèrent sur la variable bitmap de l’appelant sur BitMapBuffer. L’appelant est responsable de la synchronisation de l’accès à la variable bitmap.

RtlInitializeBitMap initialise la structure de RTL_BITMAP fournie par l’appelant en copiant les valeurs BitMapBuffer et SizeOfBitMap fournies par l’appelant. Par la suite, la structure peut être passée à d’autres routines pour manipuler la bitmap. RtlInitializeBitMap ne modifie pas le contenu de la bitmap.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Disponible à partir de Windows 2000.
Plateforme cible Universal
En-tête wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe (mode noyau) ; Ntdll.dll (mode utilisateur)
IRQL N’importe quel IRQL si BitMapHeader est résident en mémoire ; <= APC_LEVEL si BitMapHeader est paginable ou sur Windows 7 et versions antérieures

Voir aussi

RTL_BITMAP

RtlAreBitsClear

RtlAreBitsSet

RtlCheckBit

RtlClearAllBits

RtlClearBits

RtlFindClearBits

RtlFindClearBitsAndSet

RtlFindClearRuns

RtlFindFirstRunClear

RtlFindLastBackwardRunClear

RtlFindLongestRunClear

RtlFindNextForwardRunClear

RtlFindSetBits

RtlFindSetBitsAndClear

RtlNumberOfClearBits

RtlNumberOfSetBits

RtlSetAllBits

RtlSetBits