Fonctions de classe de port obsolètes
Le fichier d’en-tête portcls.hdefine les macros qui contiennent les noms des fonctions PortCls obsolètes qui ont été remplacées par de nouvelles fonctions PortCls. Ces macros permettent de recompiler l’ancien code source qui contient des références à des noms de fonctions PortCls obsolètes pour utiliser les nouvelles fonctions PortCls sans nécessiter de modification des fichiers sources.
Lors de la compilation du code source qui utilise les noms obsolètes, définissez le nom du paramètre PC_OLD_NAMES. Ce paramètre peut être défini par l’argument de ligne de commande du compilateur « -DPC_OLD_NAMES » si cela est plus pratique que d’introduire l’instruction #define PC_OLD_NAMES
dans les fichiers sources eux-mêmes.
Le tableau suivant répertorie les noms de fonction PortCls obsolètes dans la colonne de gauche. Pour chaque nom obsolète, la colonne centrale contient le nom de la nouvelle fonction PortCls qui la remplace.
Nom de la fonction obsolète | Nom de la nouvelle fonction | Les arguments ont-ils changé ? |
---|---|---|
AddAdapterDevice |
YES |
|
CompletePendingPropertyRequest |
non |
|
GetTimeInterval |
non |
|
InitializeAdapterDriver |
YES |
|
NewDmaChannel |
non |
|
NewMiniport |
non |
|
Newport |
non |
|
NewResourceList |
non |
|
NewResourceSublist |
non |
|
NewServiceGroup |
non |
|
RegisterPhysicalConnection |
YES |
|
RegisterPhysicalConnectionFromExternal |
YES |
|
RegisterPhysicalConnectionToExternal |
YES |
|
RegisterSubdevice |
YES |
Dans certains cas, la modification ne se résume pas à un simple changement de nom : le qualificateur Pc
est inséré au début du nom pour indiquer que la fonction est implémentée dans PortCls. Dans d’autres cas, toutefois, la liste d’arguments a changé en plus du nom de la fonction. La colonne de droite du tableau précédent indique si les arguments ont changé.
Dans les cas où les arguments ont changé, les macros dans portcls.hconvertis les listes d’arguments pour les fonctions PortCls obsolètes en arguments équivalents pour les nouvelles fonctions PortCls. Les macros suivantes contiennent des conversions d’arguments :
#define InitializeAdapterDriver(c1,c2,a) \
PcInitializeAdapterDriver(PDRIVER_OBJECT(c1),PUNICODE_STRING(c2),PDRIVER_ADD_DEVICE(a))
#define AddAdapterDevice(c1,c2,s,m) \
PcAddAdapterDevice(PDRIVER_OBJECT(c1),PDEVICE_OBJECT(c2),s,m,0)
#define RegisterSubdevice(c1,c2,n,u) \
PcRegisterSubdevice(PDEVICE_OBJECT(c1),n,u)
#define RegisterPhysicalConnection(c1,c2,fs,fp,ts,tp) \
PcRegisterPhysicalConnection(PDEVICE_OBJECT(c1),fs,fp,ts,tp)
#define RegisterPhysicalConnectionToExternal(c1,c2,fs,fp,ts,tp) \
PcRegisterPhysicalConnectionToExternal(PDEVICE_OBJECT(c1),fs,fp,ts,tp)
#define RegisterPhysicalConnectionFromExternal(c1,c2,fs,fp,ts,tp) \
PcRegisterPhysicalConnectionFromExternal(PDEVICE_OBJECT(c1),fs,fp,ts,tp)