ULONG Count;
BOOLEAN Found;
PKSPIN_DESCRIPTOR Descriptor;
+ UNICODE_STRING GuidString2;
/* did the caller miss the connect parameter */
if (!Connect)
/* is pin id out of bounds */
if (ConnectDetails->PinId >= DescriptorsCount)
+ {
+ FreeItem(ConnectDetails);
return STATUS_INVALID_PARAMETER;
+ }
if (DescriptorSize == sizeof(KSPIN_DESCRIPTOR))
{
/* now check the interface */
Found = FALSE;
Index = 0;
+ RtlStringFromGUID(&ConnectDetails->Interface.Set, &GuidString2);
do
{
- UNICODE_STRING GuidString, GuidString2;
+ UNICODE_STRING GuidString;
RtlStringFromGUID(&Interface[Index].Set, &GuidString);
- RtlStringFromGUID(&ConnectDetails->Interface.Set, &GuidString2);
DPRINT("Driver Interface %S Id %u\n", GuidString.Buffer, Interface[Index].Id);
DPRINT("Connect Interface %S Id %u\n", GuidString2.Buffer, ConnectDetails->Interface.Id);
+ RtlFreeUnicodeString(&GuidString);
+
if (IsEqualGUIDAligned(&Interface[Index].Set, &ConnectDetails->Interface.Set) &&
Interface[Index].Id == ConnectDetails->Interface.Id)
{
/* iterate to next interface */
Index++;
}while(Index < Count);
+ RtlFreeUnicodeString(&GuidString2);
if (!Found)
{
/* pin doesnt support this interface */
+ FreeItem(ConnectDetails);
return STATUS_NO_MATCH;
}
/* now check the interface */
Found = FALSE;
Index = 0;
+ RtlStringFromGUID(&ConnectDetails->Medium.Set, &GuidString2);
do
{
- UNICODE_STRING GuidString, GuidString2;
+ UNICODE_STRING GuidString;
RtlStringFromGUID(&Medium[Index].Set, &GuidString);
- RtlStringFromGUID(&ConnectDetails->Medium.Set, &GuidString2);
DPRINT("Driver Medium %S Id %u\n", GuidString.Buffer, Medium[Index].Id);
DPRINT("Connect Medium %S Id %u\n", GuidString2.Buffer, ConnectDetails->Medium.Id);
+ RtlFreeUnicodeString(&GuidString);
if (IsEqualGUIDAligned(&Medium[Index].Set, &ConnectDetails->Medium.Set) &&
Medium[Index].Id == ConnectDetails->Medium.Id)
break;
}
-
-
/* iterate to next medium */
Index++;
}while(Index < Count);
+ RtlFreeUnicodeString(&GuidString2);
if (!Found)
{
/* pin doesnt support this medium */
+ FreeItem(ConnectDetails);
return STATUS_NO_MATCH;
}