VOID CloseHidDevice()

in XInput_Scp/pnp.cpp [659:752]


VOID CloseHidDevice(IN PHID_DEVICE HidDevice)
{
    if (HidDevice->DevicePath != NULL)
    {
        free(HidDevice->DevicePath);
        HidDevice->DevicePath = NULL;
    }

    if (HidDevice->HidDevice != INVALID_HANDLE_VALUE)
    {
        CloseHandle(HidDevice->HidDevice);
        HidDevice->HidDevice = INVALID_HANDLE_VALUE;
    }
    
    if (HidDevice->Ppd != NULL)
    {
        HidD_FreePreparsedData(HidDevice->Ppd);
        HidDevice->Ppd = NULL;
    }

    if (HidDevice->InputReportBuffer != NULL)
    {
        free(HidDevice->InputReportBuffer);
        HidDevice->InputReportBuffer = NULL;
    }

    if (HidDevice->InputData != NULL)
    {
        free(HidDevice->InputData);
        HidDevice->InputData = NULL;
    }

    if (HidDevice->InputButtonCaps != NULL)
    {
        free(HidDevice->InputButtonCaps);
        HidDevice->InputButtonCaps = NULL;
    }

    if (HidDevice->InputValueCaps != NULL)
    {
        free(HidDevice->InputValueCaps);
        HidDevice->InputValueCaps = NULL;
    }

    if (HidDevice->OutputReportBuffer != NULL)
    {
        free(HidDevice->OutputReportBuffer);
        HidDevice->OutputReportBuffer = NULL;
    }

    if (HidDevice->OutputData != NULL)
    {
        free(HidDevice->OutputData);
        HidDevice->OutputData = NULL;
    }

    if (HidDevice->OutputButtonCaps != NULL) 
    {
        free(HidDevice->OutputButtonCaps);
        HidDevice->OutputButtonCaps = NULL;
    }

    if (HidDevice->OutputValueCaps != NULL)
    {
        free(HidDevice->OutputValueCaps);
        HidDevice->OutputValueCaps = NULL;
    }

    if (HidDevice->FeatureReportBuffer != NULL)
    {
        free(HidDevice->FeatureReportBuffer);
        HidDevice->FeatureReportBuffer = NULL;
    }

    if (HidDevice->FeatureData != NULL) 
    {
        free(HidDevice->FeatureData);
        HidDevice->FeatureData = NULL;
    }

    if (HidDevice->FeatureButtonCaps != NULL) 
    {
        free(HidDevice->FeatureButtonCaps);
        HidDevice->FeatureButtonCaps = NULL;
    }

    if (HidDevice->FeatureValueCaps != NULL) 
    {
        free(HidDevice->FeatureValueCaps);
        HidDevice->FeatureValueCaps = NULL;
    }

	return;
}