Veraltete Portklassenfunktionen
Die Headerdatei portcls.hdefines Makros, die die Namen veralteter PortCls-Funktionen enthalten, die durch neue PortCls-Funktionen ersetzt wurden. Mit diesen Makros kann alter Quellcode, der Verweise auf veraltete PortCls-Funktionsnamen enthält, neu kompiliert werden, um die neuen PortCls-Funktionen zu verwenden, ohne dass änderungen an den Quelldateien erforderlich sind.
Wenn Sie Quellcode kompilieren, der die veralteten Namen verwendet, definieren Sie den Parameternamen PC_OLD_NAMES. Dieser Parameter kann durch das Compilerbefehlszeilenargument "-DPC_OLD_NAMES" definiert werden, wenn dies bequemer ist, als die -Anweisung #define PC_OLD_NAMES
in die Quelldateien selbst einzufügen.
In der folgenden Tabelle sind die Namen der veralteten PortCls-Funktion in der linken Spalte aufgeführt. Für jeden veralteten Namen enthält die mittlere Spalte den Namen der neuen PortCls-Funktion, die sie ersetzt.
Veralteter Funktionsname | Neuer Funktionsname | Haben sich die Argumente geändert? |
---|---|---|
AddAdapterDevice |
YES |
|
CompletePendingPropertyRequest |
Nein |
|
GetTimeInterval |
Nein |
|
InitializeAdapterDriver |
YES |
|
NewDmaChannel |
Nein |
|
NewMiniport |
Nein |
|
Newport |
Nein |
|
NewResourceList |
Nein |
|
NewResourceSublist |
Nein |
|
NewServiceGroup |
Nein |
|
RegisterPhysicalConnection |
YES |
|
RegisterPhysicalConnectionFromExternal |
YES |
|
RegisterPhysicalConnectionToExternal |
YES |
|
RegisterSubdevice |
YES |
In einigen Fällen entspricht die Änderung nicht mehr als einer einfachen Namensänderung: Der Qualifizierer Pc
wird am Anfang des Namens eingefügt, um anzugeben, dass die Funktion in PortCls implementiert ist. In anderen Fällen hat sich die Argumentliste jedoch zusätzlich zum Namen der Funktion geändert. Die rechte Spalte in der vorherigen Tabelle gibt an, ob sich die Argumente geändert haben.
In Fällen, in denen sich die Argumente geändert haben, stellen die Makros in portcls.hconvertieren die Argumentlisten für die veralteten PortCls-Funktionen auf die entsprechenden Argumente für die neuen PortCls-Funktionen. Die folgenden Makros enthalten Argumentkonvertierungen:
#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)