Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
İkinci bağımsız değişkende sağlanan istemci bilgileri, cihaz performansını iyileştirmek için bazı cihaz sürücüleri tarafından kullanılır. Uygulamanız en azından adını, ana sürüm numarasını, ikincil sürüm numarasını ve düzeltme numarasını içeren bir dize sağlamalıdır. Bunlar örnek uygulama tarafından sağlanan alanlardır.
#define CLIENT_NAME L"WPD Sample Application"
#define CLIENT_MAJOR_VER 1
#define CLIENT_MINOR_VER 0
#define CLIENT_REVISION 2
Örnek uygulamadaki GetClientInformation işlevi, IPortableDeviceValues arabirimini istemci bilgileriyle oluşturur ve doldurur. Bu işlevin iki birincil bölümü vardır. İlk bölüm, CoCreateInstance işlevini çağırarak taşınabilir cihaz değerleri nesnesinin bir örneğini oluşturur.
HRESULT hr = CoCreateInstance(CLSID_PortableDeviceValues,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(ppClientInformation));
İkinci bölüm, taşınabilir cihaz-değerler nesnesindeki istemci bilgilerini ayarlar.
if (SUCCEEDED(hr))
{
// Attempt to set all bits of client information
hr = (*ppClientInformation)->SetStringValue(WPD_CLIENT_NAME, CLIENT_NAME);
if (FAILED(hr))
{
printf("! Failed to set WPD_CLIENT_NAME, hr = 0x%lx\n",hr);
}
hr = (*ppClientInformation)->SetUnsignedIntegerValue(WPD_CLIENT_MAJOR_VERSION, CLIENT_MAJOR_VER);
if (FAILED(hr))
{
printf("! Failed to set WPD_CLIENT_MAJOR_VERSION, hr = 0x%lx\n",hr);
}
hr = (*ppClientInformation)->SetUnsignedIntegerValue(WPD_CLIENT_MINOR_VERSION, CLIENT_MINOR_VER);
if (FAILED(hr))
{
printf("! Failed to set WPD_CLIENT_MINOR_VERSION, hr = 0x%lx\n",hr);
}
hr = (*ppClientInformation)->SetUnsignedIntegerValue(WPD_CLIENT_REVISION, CLIENT_REVISION);
if (FAILED(hr))
{
printf("! Failed to set WPD_CLIENT_REVISION, hr = 0x%lx\n",hr);
}
// Some device drivers need to impersonate the caller in order to function correctly. Since our application does not
// need to restrict its identity, specify SECURITY_IMPERSONATION so that we work with all devices.
hr = (*ppClientInformation)->SetUnsignedIntegerValue(WPD_CLIENT_SECURITY_QUALITY_OF_SERVICE, SECURITY_IMPERSONATION);
if (FAILED(hr))
{
printf("! Failed to set WPD_CLIENT_SECURITY_QUALITY_OF_SERVICE, hr = 0x%lx\n",hr);
}
}
else
{
printf("! Failed to CoCreateInstance CLSID_PortableDeviceValues, hr = 0x%lx\n",hr);
}
İlgili konular