- if (FilterDescriptor->PinDescriptorsCount)
- {
- /* allocate pin instance count array */
- This->PinInstanceCount = AllocateItem(NonPagedPool, sizeof(ULONG) * FilterDescriptor->PinDescriptorsCount);
- if(!This->PinDescriptors)
- {
- return STATUS_INSUFFICIENT_RESOURCES;
- }
-
- /* allocate first pin array */
- This->FirstPin = AllocateItem(NonPagedPool, sizeof(PKSPIN) * FilterDescriptor->PinDescriptorsCount);
- if(!This->FirstPin)
- {
- FreeItem(This->PinDescriptors);
- return STATUS_INSUFFICIENT_RESOURCES;
- }
-
-
- /* allocate pin descriptor array */
- This->PinDescriptors = AllocateItem(NonPagedPool, sizeof(KSPIN_DESCRIPTOR) * FilterDescriptor->PinDescriptorsCount);
- if(!This->PinDescriptors)
- {
- FreeItem(This->PinInstanceCount);
- return STATUS_INSUFFICIENT_RESOURCES;
- }
-
- /* set pin count */
- This->PinDescriptorCount = FilterDescriptor->PinDescriptorsCount;
- /* now copy those pin descriptors over */
- for(Index = 0; Index < FilterDescriptor->PinDescriptorsCount; Index++)
- {
- /* copy one pin per time */
- RtlMoveMemory(&This->PinDescriptors[Index], &FilterDescriptor->PinDescriptors[Index].PinDescriptor, sizeof(KSPIN_DESCRIPTOR));
- }
- }
+ This->PinInstanceCount = NULL;
+ This->FirstPin = NULL;
+ This->PinInstanceCount = NULL;
+ This->PinDescriptors = NULL;
+ This->PinDescriptorsEx = NULL;
+ This->PinDescriptorCount = 0;