2012-11-28 3 views
1

기계 식별 시스템의 일부로 Win32_DiskDrive의 서명을 찾고 있습니다. 두 고객의 기계에서이 필드는 임의의 값을가집니다. 나는 선적 된 코드에서 HRESULT를 점검하지 않았기 때문이라고 생각한다.디스크 서명의 임의 값

어떤 기계가 유효한 서명을 가지지 않게합니까?

WQL 쿼리 : SELECT 캡션,의 DeviceID, 서명, Win32_DiskDrive

FROM TotalSectors

업데이트 :이 이제 3 기계, 하나의 중국, 동유럽, 다른 하나에서 볼 된

캐나다. 그것이 무작위 값을 반환한다고 말할 때, 쿼리 될 때마다 다른 무작위 값을 반환합니다. 고객이 diskpart를 시도하고 uniqueid가 요청 될 때 말하는 것을 보려고 기다리고 있습니다.

+0

궁금한 점이 있으시면 궁금합니다. – Thomas

+0

문제는 MBR 파티션 스타일 대신 GPT와 관련이 있습니다. 내 문제에 대한 작업을 끝내면 더 완벽한 답변을 제공합니다. – Thomas

+0

이 질문이 일반 하드웨어에 관한 것이라고 생각할 수도 있지만이 질문과 SQL 질문 사이에는 아무런 차이가 없습니다. WQL은 개발자가 사용중인 컴퓨터에 대한 정보를 얻는 데 사용되는 도구입니다. – Thomas

답변

1

서명이 null임을 확인하는 방법을 찾지 못했습니다.

내 솔루션

wstring partionquery= L"ASSOCIATORS of {Win32_DiskDrive.DeviceID='"; 
partionquery += disk_deviceid; 
partionquery += L"'} WHERE AssocClass = Win32_DiskDriveToDiskPartition"; 

이 유형의 값을 검색하고 "GPT"로 시작 그렇다면, IOCTL_DISK_GET_PARTITION_INFO_EX로 DeviceIoControl을 호출하는지 드라이브 디스크의 파티션을 반복하는 것이 었습니다. GPT 파티션의 GUID 서명을 제공합니다.

내 테스트에서 각 파티션은 디스크에 동일한 서명을 제공하고 diskpart의 uniqueid로 표시된 서명과 일치합니다.