909{
910
911
912
913
914
915
916
927
929 if(!RegistryPathStr)
930 {
933 return;
934 }
935
940
943
946
948
950 {
952
954
957 {
960 }
961 else
962 {
964 if(!KeyInformation)
965 {
969 }
970 else
971 {
974
976
978 {
981 KeyInformation =
NULL;
982 }
983 }
984 }
985 }
986
988 {
990 KeyInformation =
NULL;
991
993 }
994 else
995 {
997
999 }
1000
1001
1003
1005 {
1006
1007 VOID *BindContext = 0;
1013
1014 if (KeyInformation)
1015 {
1016
1017 if (!(*DataPtr))
1018 break;
1019
1021 }
1022 else
1023 {
1024
1026 break;
1027
1029
1031 }
1032
1033
1035 {
1036
1038 }
1039
1040
1042 {
1043
1045 }
1046
1047
1048
1049
1050
1051
1052
1053
1054
1059
1061 if(!RegistryPathStr)
1062 {
1065 break;
1066 }
1067
1072
1074
1076
1077 NDIS_DbgPrint(
MAX_TRACE, (
"Calling protocol's BindAdapter handler with DeviceName %wZ and RegistryPath %wZ\n",
1079
1080 {
1082 if(BindHandler)
1083 {
1086 }
1087 else
1089 }
1090
1092 if (KeyInformation)
1093 {
1094
1096 }
1097 else
1098 {
1099
1100 CurrentEntry = CurrentEntry->
Flink;
1101 }
1102 }
1103
1104 if (KeyInformation)
1105 {
1107 }
1108}
IN PUNICODE_STRING IN POBJECT_ATTRIBUTES ObjectAttributes
#define NT_SUCCESS(StatCode)
#define NDIS_DbgPrint(_t_, _x_)
LIST_ENTRY AdapterListHead
PLOGICAL_ADAPTER MiniLocateDevice(PNDIS_STRING AdapterName)
PADAPTER_BINDING NTAPI LocateAdapterBindingByName(IN PPROTOCOL_BINDING ProtocolBinding, IN PNDIS_STRING AdapterName)
#define ExAllocatePoolWithTag(hernya, size, tag)
#define ExAllocatePool(type, size)
_CRTIMP size_t __cdecl wcslen(_In_z_ const wchar_t *_Str)
#define OBJ_KERNEL_HANDLE
#define OBJ_CASE_INSENSITIVE
#define InitializeObjectAttributes(p, n, a, r, s)
_Out_ PNDIS_HANDLE _In_ PNDIS_PROTOCOL_CHARACTERISTICS ProtocolCharacteristics
#define NDIS_STATUS_SUCCESS
VOID(NTAPI * BIND_HANDLER)(OUT PNDIS_STATUS Status, IN NDIS_HANDLE BindContext, IN PNDIS_STRING DeviceName, IN PVOID SystemSpecific1, IN PVOID SystemSpecific2)
#define NDIS_STATUS_RESOURCES
NTSYSAPI NTSTATUS NTAPI ZwClose(_In_ HANDLE Handle)
@ KeyValuePartialInformation
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
static unsigned __int64 next
_CRTIMP wchar_t *__cdecl wcsncat(wchar_t *_Dest, const wchar_t *_Source, size_t _Count)
_CRTIMP wchar_t *__cdecl wcscpy(_Out_writes_z_(_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
_CRTIMP wchar_t *__cdecl wcscat(_Inout_updates_z_(_String_length_(_Dest)+_String_length_(_Source)+1) wchar_t *_Dest, _In_z_ const wchar_t *_Source)
#define STATUS_BUFFER_TOO_SMALL
#define STATUS_BUFFER_OVERFLOW
struct _LIST_ENTRY * Flink
NDIS_MINIPORT_BLOCK NdisMiniportBlock
UNICODE_STRING MiniportName
#define CONTAINING_RECORD(address, type, field)
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ ULONG _Out_ PULONG ResultLength
_Must_inspect_result_ _In_ PWDFDEVICE_INIT _In_opt_ PCUNICODE_STRING DeviceName
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING ValueName