/*++ Copyright (c) 1999 Microsoft Corporation Module Name: FiltProp.cpp Abstract: Private Filter Property Sets --*/ #include "PhilTune.h" /* ** SetVsbResetProperty () ** . ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: SetVsbResetProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, IN PKSPROPERTY_VSB_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Set the property. // Status = (pFilter->GetDevice())->VsbReset(pProperty->Value); errExit: return Status; } /* ** GetVsbCapabilitiesProperty () ** ** Example of a get property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: GetVsbCapabilitiesProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, OUT PKSPROPERTY_VSB_CAP_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Return the property // Status = (pFilter->GetDevice())->GetVsbCapabilities(pProperty); errExit: return Status; } /* ** SetVsbCapabilitiesProperty () ** ** Example of a set property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: SetVsbCapabilitiesProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, IN PKSPROPERTY_VSB_CAP_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Set the property. // Status = (pFilter->GetDevice())->SetVsbCapabilities(pProperty); errExit: return Status; } /* ** GetVsbRegisterProperty () ** ** Example of a get property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: GetVsbRegisterProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, OUT PKSPROPERTY_VSB_REG_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Return the property // Status = (pFilter->GetDevice())->AccessRegisterList(pProperty, READ_REGISTERS); errExit: return Status; } /* ** SetVsbRegisterProperty () ** ** Example of a set property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: SetVsbRegisterProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, IN PKSPROPERTY_VSB_REG_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Set the property. // Status = (pFilter->GetDevice())->AccessRegisterList(pProperty, WRITE_REGISTERS); errExit: return Status; } /* ** GetVsbCoefficientProperty () ** ** Example of a get property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: GetVsbCoefficientProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, OUT PKSPROPERTY_VSB_COEFF_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Return the property // Status = (pFilter->GetDevice())->AccessVsbCoeffList(pProperty, READ_REGISTERS); errExit: return Status; } /* ** SetVsbCoefficientProperty () ** ** Example of a set property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: SetVsbCoefficientProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, IN PKSPROPERTY_VSB_COEFF_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Set the property. // Status = (pFilter->GetDevice())->AccessVsbCoeffList(pProperty, WRITE_REGISTERS); errExit: return Status; } /* ** GetVsbDiagControlProperty () ** ** Example of a get property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: GetVsbDiagControlProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, OUT PKSPROPERTY_VSB_DIAG_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Return the property // Status = (pFilter->GetDevice())->GetVsbDiagMode(&pProperty->OperationMode, &pProperty->Type); errExit: return Status; } /* ** SetVsbDiagControlProperty () ** ** Example of a set property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: SetVsbDiagControlProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, IN PKSPROPERTY_VSB_DIAG_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Set the property. // Status = (pFilter->GetDevice())->SetVsbDiagMode(pProperty->OperationMode, (VSBDIAGTYPE) (pProperty->Type)); errExit: return Status; } /* ** SetVsbQualityControlProperty () ** ** Example of a set property handler for a filter global property set. ** Use this as a template for adding support for filter global ** properties. ** ** Arguments: ** ** ** Returns: ** ** Side Effects: none */ NTSTATUS CFilter:: SetVsbQualityControlProperty( IN PIRP pIrp, IN PKSPROPERTY pKSProperty, IN PKSPROPERTY_VSB_CTRL_S pProperty ) { NTSTATUS Status = STATUS_SUCCESS; CFilter * pFilter; ASSERT( pIrp); ASSERT( pKSProperty); ASSERT( pProperty); // Obtain a "this" pointer for the method. // // Because this function is called directly from the property dispatch // table, we must get our own pointer to the underlying object. // pFilter = FilterFromIRP( pIrp); ASSERT( pFilter); if (!pFilter) { Status = STATUS_INVALID_PARAMETER; goto errExit; } // Set the property. // Status = (pFilter->GetDevice())->VsbQuality(pProperty->Value); errExit: return Status; }