Функция NdisGetRoutineAddress (ndis.h)
Функция NdisGetRoutineAddress возвращает адрес подпрограммы с именем подпрограммы.
Синтаксис
PVOID NdisGetRoutineAddress(
[in] PNDIS_STRING NdisRoutineName
);
Параметры
[in] NdisRoutineName
Указатель на структуру UNICODE_STRING, указывающую строку, содержащую имя подпрограммы.
Возвращаемое значение
Возвращает адрес подпрограммы, имя которой указано в NdisRoutineName, если подпрограмма доступна; в противном случае NULL.
Замечания
Драйвер NDIS может использовать NdisGetRoutineAddress для получения адреса экспортируемой подпрограммы NDIS. Затем драйвер может использовать этот адрес для вызова подпрограммы NDIS.
Драйвер NDIS может использовать NdisGetRoutineAddress, если драйвер должен оставаться обратно совместимым. Например, если такой драйвер импортирует подпрограмму NDIS, которая не экспортируется версией NDIS, запущенной в данный момент, диспетчер ввода-вывода не загружает драйвер в операционной системе. Однако драйвер может сначала использовать NdisGetRoutineAddress, чтобы определить, доступна ли подпрограмма в версии NDIS, которая в настоящее время выполняется. При наличии возвращается адрес подпрограммы. Затем драйвер может использовать адрес для вызова подпрограммы. Если это недоступно, возвращается NULL. Драйвер не может вызвать подпрограмму, но драйвер по-прежнему загружается в операционной системе.
Повышение производительности не достигается с помощью адреса, возвращаемого NdisGetRoutineAddress вместо вызова указанной подпрограммы по имени. Поэтому не создавайте драйвер NDIS для использования NdisGetRoutineAddress если известно, что версия NDIS, с которой драйвер будет выполнять экспорт указанной подпрограммы.
Как правило, драйвер NDIS вызывает NdisGetRoutineAddress в своей подпрограмме DriverEntry DriverEntry.